@piserve-tech/form-submission 1.3.39 → 1.3.40

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":"piserve-tech-form-submission.mjs","sources":["../../../projects/form-submission/src/lib/form-submission.service.ts","../../../projects/form-submission/src/environment/environment.ts","../../../projects/form-submission/src/services/data.service.ts","../../../projects/form-submission/src/services/mapper.service.ts","../../../projects/form-submission/src/services/form.service.ts","../../../projects/form-submission/src/form-submission/header/header.component.ts","../../../projects/form-submission/src/form-submission/header/header.component.html","../../../projects/form-submission/src/form-fields/check-box-fields/check-box-fields.component.ts","../../../projects/form-submission/src/form-fields/check-box-fields/check-box-fields.component.html","../../../projects/form-submission/src/form-fields/date-time-fields/date-time-fields.component.ts","../../../projects/form-submission/src/form-fields/date-time-fields/date-time-fields.component.html","../../../projects/form-submission/src/form-fields/drop-down-fields/drop-down-fields.component.ts","../../../projects/form-submission/src/form-fields/drop-down-fields/drop-down-fields.component.html","../../../projects/form-submission/src/form-fields/file-picker-fields/file-picker-fields.component.ts","../../../projects/form-submission/src/form-fields/file-picker-fields/file-picker-fields.component.html","../../../projects/form-submission/src/form-fields/location-fields/location-fields.component.ts","../../../projects/form-submission/src/form-fields/location-fields/location-fields.component.html","../../../projects/form-submission/src/form-fields/mail-fields/mail-fields.component.ts","../../../projects/form-submission/src/form-fields/mail-fields/mail-fields.component.html","../../../projects/form-submission/src/services/countryService.ts","../../../projects/form-submission/src/form-fields/mobile-fields/mobile-fields.component.ts","../../../projects/form-submission/src/form-fields/mobile-fields/mobile-fields.component.html","../../../projects/form-submission/src/form-fields/number-fields/number-fields.component.ts","../../../projects/form-submission/src/form-fields/number-fields/number-fields.component.html","../../../projects/form-submission/src/form-fields/password-fields/password-fields.component.ts","../../../projects/form-submission/src/form-fields/password-fields/password-fields.component.html","../../../projects/form-submission/src/form-fields/radio-button-fields/radio-button-fields.component.ts","../../../projects/form-submission/src/form-fields/radio-button-fields/radio-button-fields.component.html","../../../projects/form-submission/src/form-fields/rich-text-editor-fields/rich-text-editor-fields.component.ts","../../../projects/form-submission/src/form-fields/rich-text-editor-fields/rich-text-editor-fields.component.html","../../../projects/form-submission/src/form-fields/selection-matrix-fields/selection-matrix-fields.component.ts","../../../projects/form-submission/src/form-fields/selection-matrix-fields/selection-matrix-fields.component.html","../../../projects/form-submission/src/form-fields/signature-fields/signature-fields.component.ts","../../../projects/form-submission/src/form-fields/signature-fields/signature-fields.component.html","../../../projects/form-submission/src/form-fields/slider-fields/slider-fields.component.ts","../../../projects/form-submission/src/form-fields/slider-fields/slider-fields.component.html","../../../projects/form-submission/src/form-fields/terms-and-condition-fields/terms-and-condition-fields.component.ts","../../../projects/form-submission/src/form-fields/terms-and-condition-fields/terms-and-condition-fields.component.html","../../../projects/form-submission/src/form-fields/text-area-fields/text-area-fields.component.ts","../../../projects/form-submission/src/form-fields/text-area-fields/text-area-fields.component.html","../../../projects/form-submission/src/form-fields/text-fields/text-fields.component.ts","../../../projects/form-submission/src/form-fields/text-fields/text-fields.component.html","../../../projects/form-submission/src/form-fields/toggle-switch-fields/toggle-switch-fields.component.ts","../../../projects/form-submission/src/form-fields/toggle-switch-fields/toggle-switch-fields.component.html","../../../projects/form-submission/src/form-fields/url-fields/url-fields.component.ts","../../../projects/form-submission/src/form-fields/url-fields/url-fields.component.html","../../../projects/form-submission/src/form-fields/section-fields/section-fields.component.ts","../../../projects/form-submission/src/form-fields/section-fields/section-fields.component.html","../../../projects/form-submission/src/logic/forth-child/forth-child.component.ts","../../../projects/form-submission/src/logic/forth-child/forth-child.component.html","../../../projects/form-submission/src/logic/third-child/third-child.component.ts","../../../projects/form-submission/src/logic/third-child/third-child.component.html","../../../projects/form-submission/src/logic/second-child/second-child.component.ts","../../../projects/form-submission/src/logic/second-child/second-child.component.html","../../../projects/form-submission/src/logic/first-child/first-child.component.ts","../../../projects/form-submission/src/logic/first-child/first-child.component.html","../../../projects/form-submission/src/question/question/question.component.ts","../../../projects/form-submission/src/question/question/question.component.html","../../../projects/form-submission/src/sub-form/submission-modal/submission-modal.component.ts","../../../projects/form-submission/src/sub-form/submission-modal/submission-modal.component.html","../../../projects/form-submission/src/sub-form/multiple-subform/multiple-subform.component.ts","../../../projects/form-submission/src/sub-form/multiple-subform/multiple-subform.component.html","../../../projects/form-submission/src/sub-form/sub-form/sub-form.component.ts","../../../projects/form-submission/src/sub-form/sub-form/sub-form.component.html","../../../projects/form-submission/src/element-type/form-elements/form-elements.component.ts","../../../projects/form-submission/src/element-type/form-elements/form-elements.component.html","../../../projects/form-submission/src/form-submission/navigation-tabs/navigation-tabs.component.ts","../../../projects/form-submission/src/form-submission/navigation-tabs/navigation-tabs.component.html","../../../projects/form-submission/src/form-submission/next-prev-navigation/next-prev-navigation.component.ts","../../../projects/form-submission/src/form-submission/next-prev-navigation/next-prev-navigation.component.html","../../../projects/form-submission/src/form-submission/submission-container/submission-container.component.ts","../../../projects/form-submission/src/form-submission/submission-container/submission-container.component.html","../../../projects/form-submission/src/form-submission/submit-form/submit-form.component.ts","../../../projects/form-submission/src/form-submission/submit-form/submit-form.component.html","../../../projects/form-submission/src/lib/form-submission.component.ts","../../../projects/form-submission/src/lib/form-submission.component.html","../../../projects/form-submission/src/form-fields/form-fields.module.ts","../../../projects/form-submission/src/logic/logic.module.ts","../../../projects/form-submission/src/question/question.module.ts","../../../projects/form-submission/src/sub-form/sub-form.module.ts","../../../projects/form-submission/src/element-type/element-type.module.ts","../../../projects/form-submission/src/form-submission/form-submission.module.ts","../../../projects/form-submission/src/lib/form-submission.module.ts","../../../projects/form-submission/src/public-api.ts","../../../projects/form-submission/src/piserve-tech-form-submission.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FormSubmissionService {\r\n\r\n constructor() { }\r\n}\r\n","export let environment = {\r\n production: false,\r\n googleRecaptchaSiteKey: '',\r\n htmlDirection: 'ltr'\r\n };\r\n ","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DataService {\r\n constructor() {}\r\n\r\n private dataSubject = new BehaviorSubject<string>('');\r\n public apiUrl$: Observable<string> = this.dataSubject.asObservable();\r\n private headerSubject = new BehaviorSubject<any>({});\r\n public header$: Observable<any> = this.headerSubject.asObservable();\r\n\r\n private parentQuestionsSubject = new BehaviorSubject<any>(null);\r\n public parentQuestions$: Observable<any> = this.parentQuestionsSubject.asObservable();\r\n\r\n setApiUrl(data: string): void {\r\n this.dataSubject.next(data);\r\n }\r\n\r\n setHeader(data: any) {\r\n this.headerSubject.next(data);\r\n }\r\n\r\n setParentQuestions(data: any): void {\r\n this.parentQuestionsSubject.next(data);\r\n }\r\n}\r\n","import { Appearance } from '../models/appearance.model';\r\nimport { ElementOptionAPI } from '../models/elementOptionAPI.model';\r\nimport { elementOptionAPIData } from '../models/elementOptionAPIData.model';\r\nimport { ElementOptionDB } from '../models/elementOptionDB.model';\r\nimport { ElementOptionDBCriteria } from '../models/elementOptionDBCriteria.model';\r\nimport { FormElement } from '../models/formElement.model';\r\nimport { Grid } from '../models/grid.model';\r\nimport { Page } from '../models/page.model';\r\nimport { PublicForm } from '../models/publicForm.model';\r\nimport { Question } from '../models/question.model';\r\nimport { Row } from '../models/row.model';\r\nimport { Validation } from '../models/validation.model';\r\nimport { Option } from '../models/option.model';\r\nimport { Section } from '../models/section.model';\r\nimport { SubForm } from '../models/subForm.model';\r\nimport { FormElementType } from '../models/formElementType.model';\r\nimport { Logic } from '../models/logic.model';\r\nimport { Attachment } from '../models/attachment.model';\r\nimport { Submission } from '../models/submission.model';\r\nimport { Answer } from '../models/answer.model';\r\nimport { termsAndConditionType } from '../models/terms&condition.model';\r\n\r\nexport function mapPublicFormToModel(apiPublicForm: any): PublicForm {\r\n return {\r\n name: apiPublicForm.result.name,\r\n pages: apiPublicForm.result.pages.map((apiPage: any) =>\r\n mapPageToModel(apiPage)\r\n ),\r\n questionAnswers:apiPublicForm.result.questionAnswers,\r\n parentId:apiPublicForm.result.parentId\r\n };\r\n}\r\n\r\n\r\nfunction mapPageToModel(apiPage: any): Page {\r\n return {\r\n title: apiPage.title,\r\n rows: apiPage.rows.map((apiRow: any) => mapRowToModel(apiRow)),\r\n };\r\n}\r\n\r\nfunction mapRowToModel(apiRow: any): Row {\r\n return {\r\n grid: apiRow.grid.map((apiGrid: any) => mapGridToModel(apiGrid)),\r\n };\r\n}\r\n\r\nfunction mapGridToModel(apiGrid: any): Grid {\r\n let entity: Section | Question | SubForm | undefined;\r\n\r\n switch (apiGrid.entityType) {\r\n case 'QUESTION':\r\n entity = mapQuestionToModel(apiGrid.element);\r\n break;\r\n case 'SECTION':\r\n entity = mapSectionToModel(apiGrid.element);\r\n break;\r\n case 'SUBFORM':\r\n entity = mapSubFormToModel(apiGrid.element);\r\n break;\r\n default:\r\n throw new Error(`Unknown entity type: ${apiGrid.entityType}`);\r\n }\r\n\r\n return {\r\n entityType: apiGrid.entityType,\r\n element: entity,\r\n };\r\n}\r\n\r\nexport function mapSectionToModel(apiSection: any): Section {\r\n return {\r\n id: apiSection.id,\r\n title: apiSection.title,\r\n description: apiSection.description,\r\n };\r\n}\r\n\r\nexport function mapQuestionToModel(apiQuestion: any): Question {\r\n return {\r\n count: apiQuestion.count,\r\n id: apiQuestion.id,\r\n questionNumber: apiQuestion.questionNumber,\r\n required: apiQuestion.required,\r\n hint: apiQuestion.hint,\r\n question: apiQuestion.question,\r\n answer: apiQuestion?.answer,\r\n validation: true,\r\n formElement: mapFormElementToModel(apiQuestion.formElement),\r\n childLogics: apiQuestion?.childLogics?.map((logic: any) =>\r\n mapLogicToModel(logic)\r\n ),\r\n answerId: apiQuestion?.answerId,\r\n attachments: apiQuestion?.attachments?.map((attachment: any) => mapAttachmentToModel(attachment)) || [],\r\n deleteFiles: [],\r\n };\r\n}\r\n\r\nfunction mapAttachmentToModel(apiAttachment: any): Attachment {\r\n return {\r\n fileId: apiAttachment.fileId,\r\n fileName: apiAttachment.fileName,\r\n fileUrl: apiAttachment.fileUrl,\r\n };\r\n}\r\n\r\nfunction mapFormElementToModel(apiFormElement: any): FormElement {\r\n return {\r\n elementType: apiFormElement.elementType,\r\n appearance: mapAppearanceToModel(apiFormElement.appearance),\r\n validation: mapValidationToModel(apiFormElement.validation),\r\n option: mapOptionToModel(apiFormElement?.option),\r\n selectionMatrixLabel: apiFormElement.selectionMatrixLabel,\r\n selectionMatrixColumn: apiFormElement.selectionMatrixColumn,\r\n termsAndConditionType: maptermsAndCondition(apiFormElement)\r\n };\r\n}\r\nfunction maptermsAndCondition(Element: any): termsAndConditionType {\r\n if(Element.termsAndCondition != undefined){\r\n let data = Element.termsAndCondition\r\n return {\r\n termsAndConditionType: data.termsAndConditionType,\r\n fileUrl: data.fileUrl,\r\n fileName: data.fileName,\r\n };\r\n }\r\n else{\r\n return {\r\n termsAndConditionType: '',\r\n fileUrl: '',\r\n fileName: '',\r\n }\r\n }\r\n\r\n}\r\n\r\nfunction mapLogicToModel(apiLogic: any): Logic {\r\n return {\r\n id: apiLogic.id,\r\n inputValue: apiLogic.inputValue,\r\n condition: apiLogic.condition,\r\n showLogic: false,\r\n formElements: apiLogic?.formElements?.map((element: any) =>\r\n mapFormElementTypeToModel(element)\r\n ),\r\n };\r\n}\r\n\r\nexport function mapSubFormToModel(apiSubForm: any): SubForm {\r\n return {\r\n id: apiSubForm.id,\r\n count: apiSubForm.count,\r\n title: apiSubForm.title,\r\n description: apiSubForm.description,\r\n subFormStructure: apiSubForm.subFormStructure,\r\n formElements: apiSubForm.formElements.map((element: any) => mapFormElementTypeToModel(element)),\r\n submissions: apiSubForm?.submissions?.map((submission: any) => mapSubmissionToModel(submission)),\r\n };\r\n}\r\n\r\nfunction mapSubmissionToModel(apiSubmission: any): Submission {\r\n return {\r\n submissionId: apiSubmission?.submissionId,\r\n answers: apiSubmission?.answers?.map((answer: any) => mapAnswerToModel(answer)),\r\n };\r\n}\r\n\r\nfunction mapAnswerToModel(apiAnswer: any): Answer {\r\n return {\r\n questionId: apiAnswer.questionId,\r\n answer: apiAnswer?.answer,\r\n answerId: apiAnswer?.answerId,\r\n attachments: apiAnswer?.attachments?.map((attachment: any) => mapAttachmentToModel(attachment)),\r\n };\r\n}\r\n\r\nexport function mapFormElementTypeToModel(\r\n apiFormElementType: any\r\n): FormElementType<any> {\r\n return {\r\n entityType: apiFormElementType?.entityType,\r\n element: apiFormElementType?.element,\r\n };\r\n}\r\n\r\nfunction mapAppearanceToModel(apiAppearance: any): Appearance {\r\n return {\r\n placeholder: apiAppearance?.placeholder,\r\n fontSize: apiAppearance?.fontSize,\r\n textAlign: apiAppearance?.textAlign,\r\n font: apiAppearance?.font,\r\n underline: apiAppearance?.underline,\r\n bold: apiAppearance?.bold,\r\n italics: apiAppearance?.italics,\r\n defaultValue: apiAppearance?.defaultValue,\r\n numberOfRows: apiAppearance?.numberOfRows,\r\n singleSelection: apiAppearance?.singleSelection,\r\n displayCountryCode: apiAppearance?.displayCountryCode,\r\n displayFlag: apiAppearance?.displayFlag,\r\n displayCode: apiAppearance?.displayCode,\r\n showCountryName: apiAppearance?.showCountryName,\r\n beautifyNumbers: apiAppearance?.beautifyNumbers,\r\n upAndDownButton: apiAppearance?.upAndDownButton,\r\n allowNegativeValues: apiAppearance?.allowNegativeValues,\r\n showPreviewButton: apiAppearance?.showPreviewButton,\r\n confirmPassword: apiAppearance?.confirmPassword,\r\n viewButton: apiAppearance?.viewButton,\r\n displayStrong: apiAppearance?.displayStrong,\r\n dateType: apiAppearance?.dateType,\r\n format: apiAppearance?.format,\r\n setCurrentPosition: apiAppearance?.setCurrentPosition,\r\n defaultZoomLevel: apiAppearance?.defaultZoomLevel,\r\n allowFullScreen: apiAppearance?.allowFullScreen,\r\n latitude: apiAppearance?.latitude,\r\n longitude: apiAppearance?.longitude,\r\n showAcceptButton: apiAppearance?.showAcceptButton,\r\n labelOnValue: apiAppearance?.labelOnValue,\r\n labelOffValue: apiAppearance?.labelOffValue,\r\n labelOnColor: apiAppearance?.labelOnColor,\r\n labelOffColor: apiAppearance?.labelOffColor,\r\n minValue: apiAppearance?.minValue,\r\n maxValue: apiAppearance?.maxValue,\r\n stepValue: apiAppearance?.stepValue,\r\n changeSliderColor: apiAppearance?.changeSliderColor,\r\n sliderColor: apiAppearance?.sliderColor,\r\n canvasOption: apiAppearance?.canvasOption,\r\n selectionType: apiAppearance?.selectionType,\r\n dragAndDrop: apiAppearance?.dragAndDrop,\r\n previewUploadedFiles: apiAppearance?.previewUploadedFiles,\r\n multiFileUploads: apiAppearance?.multiFileUploads,\r\n selectionColorRequired: apiAppearance?.selectionColorRequired,\r\n selectionColor: apiAppearance?.selectionColor,\r\n color: apiAppearance?.color,\r\n avatarPicker:apiAppearance?.avatarPicker,\r\n timeFormat:apiAppearance?.timeFormat\r\n };\r\n}\r\n\r\nfunction mapValidationToModel(apiValidation: any): Validation {\r\n return {\r\n regexValidation: apiValidation?.regexValidation,\r\n regex: apiValidation?.regex,\r\n validationMessage: apiValidation?.validationMessage,\r\n limitedCharacters: apiValidation?.limitedCharacters,\r\n count: apiValidation?.count,\r\n minimumSelection: apiValidation?.minimumSelection,\r\n maximumSelection: apiValidation?.maximumSelection,\r\n countryWiseValidation: apiValidation?.countryWiseValidation,\r\n restrictCountry: apiValidation?.restrictCountry,\r\n allowedCountries: apiValidation?.allowedCountries,\r\n blockedCountries: apiValidation?.blockedCountries,\r\n regularExpression: apiValidation?.regularExpression,\r\n expectedDomains: apiValidation?.expectedDomains,\r\n min: apiValidation?.min,\r\n max: apiValidation?.max,\r\n minLength: apiValidation?.minLength,\r\n maxLength: apiValidation?.maxLength,\r\n requireLowercaseLetters: apiValidation?.requireLowercaseLetters,\r\n requireUppercaseLetters: apiValidation?.requireUppercaseLetters,\r\n requireNumbers: apiValidation?.requireNumbers,\r\n requireSpecialCharacters: apiValidation?.requireSpecialCharacters,\r\n allowedSpecialCharacters: apiValidation?.allowedSpecialCharacters,\r\n minDateOption: apiValidation?.minDateOption,\r\n minDate: apiValidation?.minDate,\r\n maxDateOption: apiValidation?.maxDateOption,\r\n maxDate: apiValidation?.maxDate,\r\n regionBoundary: apiValidation?.regionBoundary,\r\n region: apiValidation?.region,\r\n preventFromProceedingWithoutAgree:\r\n apiValidation?.preventFromProceedingWithoutAgree,\r\n buttonColour: apiValidation?.buttonColour,\r\n maxFileSize: apiValidation?.maxFileSize,\r\n minFileSize: apiValidation?.minFileSize,\r\n minSelection: apiValidation?.minSelection,\r\n maxSelection: apiValidation?.maxSelection,\r\n fileTypes: apiValidation?.fileTypes,\r\n fileSize: apiValidation?.fileSize,\r\n fileSizeUnit: apiValidation?.fileSizeUnit,\r\n totalFileSize: apiValidation?.totalFileSize,\r\n minSelectionRequired: apiValidation?.minSelectionRequired,\r\n minSelectionValue: apiValidation?.minSelectionValue,\r\n validationType: apiValidation?.validationType,\r\n validation: apiValidation?.validation,\r\n minTime: apiValidation?.minTime,\r\n maxTime:apiValidation?.maxTime,\r\n minTimeOption:apiValidation?.minTimeOption,\r\n maxTimeOption: apiValidation?.maxTimeOption,\r\n };\r\n}\r\n\r\nfunction mapElementOptionDBToModel(apiElementOptionDB: any): ElementOptionDB {\r\n return {\r\n tableName: apiElementOptionDB.tableName,\r\n valueField: apiElementOptionDB.valueField,\r\n labelField: apiElementOptionDB.labelField,\r\n criteria: apiElementOptionDB?.criteria.map((apiCriteria: any) =>\r\n mapElementOptionDBCriteriaToModel(apiCriteria)\r\n ),\r\n };\r\n}\r\n\r\nfunction mapElementOptionDBCriteriaToModel(\r\n apiElementOptionDBCriteria: any\r\n): ElementOptionDBCriteria {\r\n return {\r\n field: apiElementOptionDBCriteria?.field,\r\n condition: apiElementOptionDBCriteria?.condition,\r\n valueSource: apiElementOptionDBCriteria?.valueSource,\r\n inputValue: apiElementOptionDBCriteria?.inputValue,\r\n logicalOperator: apiElementOptionDBCriteria?.logicalOperator,\r\n };\r\n}\r\n\r\nfunction mapElementOptionAPIToModel(\r\n apiElementOptionAPI: any\r\n): ElementOptionAPI {\r\n return {\r\n external: apiElementOptionAPI?.external,\r\n url: apiElementOptionAPI?.url,\r\n valueField: apiElementOptionAPI?.valueField,\r\n labelField: apiElementOptionAPI?.labelField,\r\n pathToValue: apiElementOptionAPI?.pathToValue,\r\n headers: apiElementOptionAPI?.headers?.map(mapElementOptionAPIDataToModel),\r\n params: apiElementOptionAPI?.params?.map(mapElementOptionAPIDataToModel),\r\n pathVariables: apiElementOptionAPI?.pathVariables?.map(\r\n mapElementOptionAPIDataToModel\r\n ),\r\n };\r\n}\r\n\r\nfunction mapElementOptionAPIDataToModel(\r\n apiElementOptionAPIData: any\r\n): elementOptionAPIData {\r\n return {\r\n keyName: apiElementOptionAPIData?.keyName,\r\n valueSource: apiElementOptionAPIData?.valueSource,\r\n inputValue: apiElementOptionAPIData?.inputValue,\r\n };\r\n}\r\n\r\nfunction mapOptionToModel(apiOption: any): Option {\r\n return {\r\n optionType: apiOption?.optionType,\r\n lookupTable: apiOption?.lookupTable,\r\n customOptions: apiOption?.customOptions?.map((option: { value: any }) => ({\r\n value: option.value,\r\n })),\r\n database: apiOption?.database\r\n ? mapElementOptionDBToModel(apiOption?.database)\r\n : undefined,\r\n api: apiOption?.api ? mapElementOptionAPIToModel(apiOption.api) : undefined,\r\n };\r\n}\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { DataService } from './data.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FormService {\r\n private apiUrl: string = '';\r\n header: any = {};\r\n parentQuestions: any;\r\n\r\n constructor(private http: HttpClient, private dataService: DataService) {\r\n this.dataService.apiUrl$.subscribe((data) => {\r\n this.apiUrl = data;\r\n });\r\n\r\n this.dataService.header$.subscribe((data) => {\r\n this.header = data;\r\n });\r\n\r\n this.dataService.parentQuestions$.subscribe((questions) => {\r\n if (questions) {\r\n this.parentQuestions = questions;\r\n }\r\n });\r\n }\r\n\r\n getQuestions(moduleName: string) {\r\n const headers = new HttpHeaders({\r\n 'Accept-Language': this.header.acceptedLanguage,\r\n });\r\n return this.http.get(`${this.apiUrl}/api/public/forms/${moduleName}`, {\r\n headers\r\n });\r\n }\r\n\r\n fetchDataFromDatabase(database: any) {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.post<any>(`${this.apiUrl}/api/load-from-db`, database, {\r\n headers,\r\n });\r\n }\r\n\r\n fetchDataFromLookup(tableName: string) {\r\n return this.http.get<any>(`${this.apiUrl}/api/public/lookup/${tableName}`);\r\n }\r\n\r\n fetchDataFromExternalAPI(apiConfig: any): Observable<any> {\r\n // Prepare headers dynamically\r\n let headers = new HttpHeaders();\r\n if (apiConfig.headers) {\r\n apiConfig.headers.forEach((header: any) => {\r\n if (header.keyName && header.inputValue) {\r\n \r\n if(header.keyName.toLowerCase() === 'authorization') {\r\n headers = headers.set(header.keyName, 'Bearer ' + header.inputValue);\r\n } else {\r\n headers = headers.set(header.keyName, header.inputValue);\r\n }\r\n \r\n }\r\n });\r\n }\r\n\r\n // Prepare params dynamically\r\n let params = new HttpParams();\r\n if (apiConfig.params) {\r\n apiConfig.params.forEach((param: any) => {\r\n if (param.keyName && param.inputValue) {\r\n params = params.set(param.keyName, param.inputValue);\r\n }\r\n });\r\n }\r\n\r\n // Construct URL with path variables\r\n let url = apiConfig.url;\r\n if (apiConfig.pathVariables) {\r\n apiConfig.pathVariables.forEach((pathVar: any) => {\r\n if (pathVar.keyName && pathVar.inputValue) {\r\n url = url.replace(`{${pathVar.keyName}}`, pathVar.inputValue);\r\n }\r\n });\r\n }\r\n\r\n // Make the GET request with headers and params\r\n return this.http.get<any>(url, { headers, params });\r\n //return this.http.get<any>(apiConfig.url);\r\n }\r\n\r\n submitForm(moduleName: string, formData: FormData): Observable<any> {\r\n const headers = new HttpHeaders({\r\n 'Auth-user': this.header.authUser,\r\n });\r\n const url = `${this.apiUrl}/api/public/forms/${moduleName}/submissions`;\r\n return this.http.post(url, formData, {\r\n headers\r\n });\r\n }\r\n\r\n getSubmittedForm(moduleName: string, submissionId: string) {\r\n const questions = this.parentQuestions ? this.parentQuestions.map((q: any) => `parentQuestions=${encodeURIComponent(q)}`).join('&') : '';\r\n return this.http.get<any>(`${this.apiUrl}/api/forms/${moduleName}/submissions/${submissionId}?${questions}`);\r\n }\r\n\r\n updateForm(moduleName: string, submissionId: string, formData: FormData): Observable<any> {\r\n const headers = new HttpHeaders({\r\n 'Auth-user': this.header.authUser,\r\n });\r\n const url = `${this.apiUrl}/api/public/forms/${moduleName}/submissions/${submissionId}`;\r\n return this.http.put(url, formData, {\r\n headers\r\n });\r\n }\r\n previewFile(url: any): Observable<any> {\r\n const headers = new HttpHeaders({\r\n 'Content-Type': this.header.contentType,\r\n 'auth-user': this.header.authUser,\r\n });\r\n const body = {\r\n // Your request body content here\r\n };\r\n const options = {\r\n headers: headers,\r\n body: body,\r\n };\r\n const fileUrl = url;\r\n const encodedFileUrl = encodeURIComponent(fileUrl);\r\n const fullUrl = `?url=${encodedFileUrl}`;\r\n return this.http.get<any>(this.apiUrl + `/api/cdn/preview${fullUrl}`, options);\r\n }\r\n\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss']\r\n})\r\nexport class HeaderComponent {\r\n @Input() name: string = '';\r\n}\r\n","<div class=\"head container\">\r\n <div class=\"registration-header\">\r\n <h2>{{ name }}</h2>\r\n </div>\r\n <div class=\"line\"></div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormService } from '../../services/form.service';\r\n\r\n@Component({\r\n selector: 'lib-check-box-fields',\r\n templateUrl: './check-box-fields.component.html',\r\n styleUrls: ['./check-box-fields.component.scss'],\r\n})\r\nexport class CheckBoxFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n selectionType: string = '';\r\n minimumSelection?: number;\r\n maximumSelection?: number;\r\n optionType: string = '';\r\n lookupTable: any = {};\r\n customOptions: any[] = [];\r\n database: any = {};\r\n api: any = {};\r\n apiOptions: any[] = []; \r\n selectedOptions: any[] = [];\r\n validationFailed: boolean = false;\r\n validationMessage: string = '';\r\n\r\n constructor(private formService: FormService) { }\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.selectionType = this.question.formElement.appearance.selectionType;\r\n this.minimumSelection =\r\n this.question.formElement.validation.minimumSelection;\r\n this.maximumSelection =\r\n this.question.formElement.validation.maximumSelection;\r\n this.optionType = this.question.formElement.option.optionType;\r\n switch (this.optionType) {\r\n case 'OPTION':\r\n this.customOptions = this.question.formElement.option.customOptions;\r\n if (this.question.answer) {\r\n this.initializeCustomOption();\r\n }\r\n break;\r\n case 'LOOKUP':\r\n this.lookupTable = this.question.formElement.option.lookupTable;\r\n this.fetchDataFromLookup();\r\n break;\r\n case 'DATABASE':\r\n this.database = this.question.formElement.option.database;\r\n this.fetchDataFromDatabase();\r\n break;\r\n case 'API':\r\n this.api = this.question.formElement.option.api;\r\n this.fetchDataFromAPI();\r\n break;\r\n default:\r\n console.warn('Unknown option type:', this.optionType);\r\n }\r\n\r\n // If selectionType is 'SINGLE', set minimumSelection and maximumSelection to 1\r\n if (this.selectionType === 'SINGLE') {\r\n this.minimumSelection = 1;\r\n this.maximumSelection = 1;\r\n }\r\n\r\n // If selectionType is 'MULTIPLE' and minSelection and maxSelection are not specified, set them to undefined\r\n if (\r\n this.selectionType === 'MULTIPLE' &&\r\n !this.minimumSelection &&\r\n !this.maximumSelection\r\n ) {\r\n this.minimumSelection = undefined;\r\n this.maximumSelection = undefined;\r\n }\r\n\r\n if(this.question.childLogics && this.question.answer){\r\n this.updateChildLogics(this.question)\r\n }\r\n }\r\n\r\n initializeCustomOption() {\r\n this.customOptions?.forEach((option: any) => {\r\n if (this.question?.answer?.find((a: any) => a.toString() === option.value.toString())) {\r\n this.selectedOptions.push(option);\r\n }\r\n })\r\n }\r\n\r\n onCheckboxChange(option: any, event: any) {\r\n if (this.selectionType === 'SINGLE') {\r\n if (event.target.checked) {\r\n this.selectedOptions = [option];\r\n this.question.answer = [option.value];\r\n } else {\r\n this.selectedOptions = [];\r\n this.question.answer = [];\r\n }\r\n this.isMinimumSelectionValid();\r\n } else if (this.selectionType === 'MULTIPLE') {\r\n if (event.target.checked) {\r\n if (!this.selectedOptions.includes(option)) {\r\n this.selectedOptions.push(option);\r\n }\r\n } else {\r\n this.selectedOptions = this.selectedOptions.filter(\r\n (item) => item !== option\r\n );\r\n }\r\n this.question.answer = this.selectedOptions.map((item) => item.value);\r\n this.isMinimumSelectionValid();\r\n }\r\n\r\n // Check if the number of selected options exceeds the maximum allowed\r\n if (\r\n this.maximumSelection !== undefined &&\r\n this.selectedOptions.length > this.maximumSelection\r\n ) {\r\n // If exceeded, uncheck the last selected option\r\n event.target.checked = false;\r\n this.selectedOptions = this.selectedOptions.filter(\r\n (item) => item !== option\r\n );\r\n this.question.answer = this.selectedOptions.map((item) => item.value);\r\n this.isMinimumSelectionValid();\r\n }\r\n\r\n if(this.question.childLogics){\r\n this.updateChildLogics(this.question);\r\n }\r\n }\r\n\r\n updateChildLogics(question: any) {\r\n if (question.childLogics && Array.isArray(question.childLogics)) {\r\n question.childLogics.forEach((childLogic: any) => {\r\n if(this.selectionType=='SINGLE'){\r\n if(this.selectedOptions.length==0){\r\n childLogic.showLogic=false;\r\n }\r\n else{\r\n childLogic.showLogic = this.evaluateCondition(this.selectedOptions[0]?.value, childLogic.condition, childLogic.inputValue);\r\n }\r\n }\r\n else if (this.selectionType === 'MULTIPLE') {\r\n if(this.selectedOptions.length==0){\r\n childLogic.show=false;\r\n }\r\n else{\r\n const selectedValues = this.selectedOptions.map((item: any) => item.value);\r\n childLogic.showLogic = this.evaluateMultipleCondition(selectedValues, childLogic.condition, childLogic.inputValue);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n \r\n evaluateCondition(answer: any[], condition: string, inputValue: any): boolean {\r\n const stringInputValue = Array.isArray(inputValue) ? inputValue.map(val => val.toString()) : inputValue;\r\n\r\n switch (condition) { \r\n case \"!=\":\r\n return answer !=stringInputValue;\r\n case \"=\":\r\n return answer ==stringInputValue;\r\n case \"IN\":\r\n return stringInputValue.includes(answer);\r\n case \"NOT IN\":\r\n return !(stringInputValue.includes(answer))\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n evaluateMultipleCondition(answers: any[], condition: string, inputValue: any): boolean {\r\n const stringInputValue = Array.isArray(inputValue) ? inputValue.map(val => val.toString()) : inputValue.toString();\r\n switch (condition) {\r\n case \"!=\":\r\n return answers.every(answer => answer != stringInputValue);\r\n case \"=\":\r\n return answers.some(answer => answer == stringInputValue);\r\n case \"IN\":\r\n return answers.some(answer => stringInputValue.includes(answer));\r\n case \"NOT IN\":\r\n return answers.every(answer => !stringInputValue.includes(answer));\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n fetchDataFromLookup() {\r\n this.formService.fetchDataFromLookup(this.lookupTable).subscribe(\r\n (response) => {\r\n this.customOptions = response.result.values.map(\r\n (item: { value: string; label: string }) => ({\r\n value: item.value,\r\n label: item.label,\r\n })\r\n );\r\n if (this.question.answer) {\r\n this.initializeCustomOption();\r\n }\r\n },\r\n (error) => {\r\n console.error('HTTP Error:', error);\r\n }\r\n );\r\n }\r\n\r\n fetchDataFromDatabase() {\r\n const transformedDatabase = this.transformDatabaseObject(this.database);\r\n this.formService.fetchDataFromDatabase(transformedDatabase).subscribe(\r\n (response) => {\r\n if (response.success) {\r\n this.customOptions = response.result.map(\r\n (item: { value: string; label: string }) => ({\r\n value: item.value,\r\n label: item.label,\r\n })\r\n );\r\n if (this.question.answer) {\r\n this.initializeCustomOption();\r\n }\r\n } else {\r\n console.error('Error fetching data from database:', response.message);\r\n }\r\n },\r\n (error) => {\r\n console.error('HTTP Error:', error);\r\n }\r\n );\r\n }\r\n\r\n transformDatabaseObject(database: any) {\r\n return {\r\n tableName: database.tableName,\r\n valueField: database.valueField,\r\n labelField: database.labelField,\r\n criteria: database.criteria.map((criteria: any) => ({\r\n field: criteria?.field,\r\n valueSource:criteria?.valueSource,\r\n condition: criteria?.condition,\r\n value: criteria?.inputValue,\r\n logicalOperator: criteria?.logicalOperator,\r\n })),\r\n };\r\n }\r\n\r\n fetchDataFromAPI() {\r\n const apiConfig = this.api;\r\n this.formService.fetchDataFromExternalAPI(apiConfig).subscribe(\r\n (response) => {\r\n let data;\r\n if(apiConfig.pathToValue) {\r\n data = this.extractDataByPath(response, apiConfig.pathToValue);\r\n } else {\r\n data = response;\r\n }\r\n \r\n this.customOptions = data.map((item: any) => ({\r\n value: item[apiConfig.valueField],\r\n label: item[apiConfig.labelField],\r\n }));\r\n if (this.question.answer) {\r\n \r\n this.initializeCustomOption();\r\n \r\n }\r\n },\r\n (error) => {\r\n console.error('HTTP Error:', error);\r\n }\r\n );\r\n }\r\n\r\n extractDataByPath(data: any, path: string) {\r\n return path.split('.').reduce((acc, part) => acc && acc[part], data);\r\n }\r\n\r\n isMinimumSelectionValid() {\r\n this.validationFailed = false;\r\n \r\n if (this.selectedOptions.length == 0 && this.required) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.question.validation = false;\r\n } else if (this.minimumSelection !== undefined) {\r\n if(this.selectionType=='SINGLE'){\r\n if (this.selectedOptions.length < this.minimumSelection && this.required) {\r\n this.validationFailed = true;\r\n this.validationMessage = `Minimum ${this.minimumSelection} selection(s) required.`;\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n }\r\n else{\r\n if (this.selectedOptions.length < this.minimumSelection) {\r\n this.validationFailed = true;\r\n this.validationMessage = `Minimum ${this.minimumSelection} selection(s) required.`;\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n }\r\n } else {\r\n this.question.validation = true;\r\n }\r\n }\r\n\r\n getOptions() {\r\n if (this.optionType === 'OPTION') {\r\n return this.customOptions;\r\n } else if (this.optionType === 'LOOKUP') {\r\n return Object.values(this.lookupTable);\r\n } else if (this.optionType === 'API') {\r\n return this.apiOptions.map((option) => option.valueField);\r\n } else {\r\n return [];\r\n }\r\n }\r\n\r\n isOptionDisabled(option: any): boolean {\r\n return (\r\n this.maximumSelection !== undefined &&\r\n this.selectedOptions.length >= this.maximumSelection &&\r\n !this.selectedOptions.includes(option)\r\n );\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"form-check\" *ngFor=\"let option of customOptions\">\r\n <input\r\n class=\"form-check-input\"\r\n type=\"checkbox\"\r\n [id]=\"option.value + question?.id\"\r\n [name]=\"option.value + 'Checkbox'\"\r\n [value]=\"option.value\"\r\n (change)=\"onCheckboxChange(option, $event)\"\r\n [disabled]=\"isOptionDisabled(option)\"\r\n [checked]=\"selectedOptions.includes(option)\"\r\n />\r\n <label\r\n class=\"formCheckLabel ms-2 me-4 mb-2\"\r\n [for]=\"option.value + question?.id\"\r\n *ngIf=\"optionType == 'OPTION'\"\r\n >{{ option.value }}</label\r\n >\r\n <label\r\n class=\"formCheckLabel ms-2 me-4\"\r\n [for]=\"option.value + question?.id\"\r\n *ngIf=\"optionType == 'LOOKUP' || 'DATABASE' || 'API'\"\r\n >{{ option.label }}</label\r\n >\r\n </div>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n</div>\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport {\r\n BsDatepickerConfig,\r\n BsDatepickerDirective,\r\n} from 'ngx-bootstrap/datepicker';\r\n\r\n@Component({\r\n selector: 'lib-date-time-fields',\r\n templateUrl: './date-time-fields.component.html',\r\n styleUrls: ['./date-time-fields.component.scss'],\r\n providers: [DatePipe]\r\n})\r\nexport class DateTimeFieldsComponent {\r\n bsConfig: Partial<BsDatepickerConfig> = {\r\n containerClass: 'theme-dark-blue',\r\n isAnimated: true,\r\n adaptivePosition: true,\r\n showWeekNumbers: false,\r\n };\r\n\r\n @Input() question: any = {};\r\n required: boolean = false;\r\n hint: string = '';\r\n count: number = 0;\r\n minTime: string = '';\r\n maxTime: string = '';\r\n dateType: string = '';\r\n format: string = '';\r\n timeFormat: string ='';\r\n minDateOption: string = '';\r\n minDate: Date | undefined;\r\n maxDateOption: string = '';\r\n maxDate: Date | undefined;\r\n todayDate: Date = new Date();\r\n selectedDate: Date | null = null;\r\n selectedTime: string = '';\r\n selectedDateRange: string = '';\r\n selectedDateAndTime: Date | null = null;\r\n validationFailed!: boolean;\r\n timeValidationFailed!: boolean;\r\n validationMessage: string = '';\r\n maxTimeOption: string = '';\r\n minTimeOption: string = '';\r\n \r\n @ViewChild('datepickerYMD') datepicker!: BsDatepickerDirective;\r\n @ViewChild('daterangepicker') dateRangePicker!: BsDatepickerDirective;\r\n @ViewChild('dateAndTimePicker') dateAndTimePicker!: BsDatepickerDirective;\r\n constructor(private datePipe: DatePipe) { }\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n \r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.dateType = this.question.formElement.appearance.dateType;\r\n this.minDateOption = this.question.formElement.validation.minDateOption;\r\n\r\n \r\n this.minDate = this.getMinDate();\r\n\r\n \r\n this.maxDateOption = this.question.formElement.validation.maxDateOption;\r\n this.maxDate = this.getMaxDate();\r\n this.setDateTimeFormat();\r\n if(this.question?.answer && (this.question?.answer).length>0)\r\n this.selectedDate = this.question?.answer ; \r\n this.selectedTime = this.question.answer;\r\n if(this.question?.answer && (this.question?.answer).length>0)\r\n this.selectedDateAndTime = new Date(this.question.answer);\r\n this.selectedDateRange = this.question.answer;\r\n this.minTimeOption=this.question.formElement.validation.minTimeOption;\r\n this.maxTimeOption=this.question.formElement.validation.maxTimeOption;\r\n if(this.dateType!=='DATE_AND_TIME'){\r\n this.minTime=this.getMinTime().toString();\r\n this.maxTime=this.getMaxTime().toString();\r\n }\r\n if(this.dateType==='DATE_AND_TIME' && this.question?.answer){\r\n const dateTimeArray = this.question.answer \r\n ? this.question.answer.split(',')\r\n : []; // Fallback to an empty array if `this.question.answer` is undefined\r\n \r\n if (dateTimeArray.length === 2) {\r\n const fetchedDate = dateTimeArray[0].trim();\r\n const fetchedTime = dateTimeArray[1].trim();\r\n this.selectedDate=fetchedDate;\r\n this.selectedTime=fetchedTime;\r\n }\r\n\r\n const formattedDate = this.datePipe.transform(this.selectedDateAndTime, 'dd/MM/yyyy');\r\n const formatteminDate = this.datePipe.transform(this.minDate, 'dd/MM/yyyy');\r\n const formattemaxDate = this.datePipe.transform(this.maxDate, 'dd/MM/yyyy');\r\n \r\n if(formattedDate===formatteminDate){\r\n this.minTime=this.getMinTime().toString();\r\n if (this.timeFormat=== '12') {\r\n this.maxTime = '12:00 pm';\r\n } else {\r\n this.maxTime = '23:00';\r\n }\r\n }\r\n if(formattedDate===formattemaxDate){\r\n this.maxTime=this.getMaxTime().toString();\r\n if (this.timeFormat === '12') {\r\n this.minTime = '12:00 am';\r\n } else {\r\n this.minTime = '00:00';\r\n }\r\n}\r\nif(formattedDate!==formatteminDate && formattedDate!==formattemaxDate){\r\n if (this.timeFormat === '12') {\r\n this.minTime = '12:00 am';\r\n this.maxTime = '12:00 pm';\r\n } else {\r\n this.minTime = '00:00';\r\n this.maxTime = '23:00';\r\n }\r\n}\r\n \r\n }\r\n\r\n \r\n if (!this.minTime || this.minTime.length === 0) {\r\n if (this.timeFormat === '12') {\r\n this.minTime = '12:00 am';\r\n } else {\r\n this.minTime = '00:00';\r\n }\r\n }\r\n\r\n if (!this.maxTime || this.maxTime.length === 0) {\r\n if (this.timeFormat=== '12') {\r\n this.maxTime = '12:00 pm';\r\n } else {\r\n this.maxTime = '23:00';\r\n }\r\n }\r\n\r\n\r\n \r\n }\r\n\r\n setDateTimeFormat() {\r\n switch (this.dateType) {\r\n case 'DATE_ONLY':\r\n this.format =this.question.formElement.appearance.format; \r\n break;\r\n case 'TIME_ONLY': \r\n this.timeFormat = this.question.formElement.appearance.timeFormat;\r\n break;\r\n case 'DATE_AND_TIME':\r\n this.format = this.question.formElement.appearance.format;\r\n break;\r\n case 'DATE_RANGE':\r\n this.format = this.question.formElement.appearance.format;\r\n break;\r\n default:\r\n this.format = 'DD/MM/YYYY';\r\n }\r\n }\r\n\r\n getMinDate(): Date | undefined {\r\n if (this.minDateOption === 'CURRENT_DATE') {\r\n return this.todayDate;\r\n } else if (this.minDateOption === 'CUSTOM') {\r\n return new Date(this.question.formElement.validation.minDate);\r\n }\r\n return undefined; // Return undefined if no valid option\r\n }\r\n\r\n getMaxDate(): Date | undefined {\r\n if (this.maxDateOption === 'CURRENT_DATE') {\r\n return this.todayDate;\r\n } else if (this.maxDateOption === 'CUSTOM') {\r\n return new Date(this.question.formElement.validation.maxDate);\r\n }\r\n return undefined;\r\n }\r\n\r\n getMinTime() {\r\n if (this.minTimeOption) {\r\n const format = this.timeFormat === '24' ? 'HH:mm' : 'hh:mm a';\r\n \r\n if (this.minTimeOption === 'CURRENT_TIME') {\r\n const now = new Date();\r\n return this.datePipe.transform(now, format) || '';\r\n } else if (this.minTimeOption === 'CUSTOM') {\r\n const customTime = this.question.formElement.validation.minTime;\r\n const [hours, minutes] = customTime.split(':'); // Split by colon to get hours and minutes\r\n \r\n // Create a Date object with a fixed date and custom time\r\n const customDate = new Date();\r\n customDate.setHours(parseInt(hours, 10), parseInt(minutes, 10), 0, 0); // Set hours and minutes\r\n\r\n return this.datePipe.transform(customDate, format) || '';\r\n }\r\n }\r\n \r\n // Ensure a default return if no condition is met\r\n return '';\r\n }\r\n \r\n\r\n getMaxTime() {\r\n if(this.maxTimeOption){\r\n const format= this.timeFormat==='24'?'HH:mm':'hh:mm a';\r\n if(this.maxTimeOption==='CURRENT_TIME')\r\n {\r\n const now = new Date();\r\n return this.datePipe.transform(now,format) || '';\r\n }\r\n else if(this.maxTimeOption==='CUSTOM'){\r\n const customTime = this.question.formElement.validation.maxTime;\r\n const [hours, minutes] = customTime.split(':'); // Split by colon to get hours and minutes\r\n \r\n // Create a Date object with a fixed date and custom time\r\n const customDate = new Date();\r\n customDate.setHours(parseInt(hours, 10), parseInt(minutes, 10), 0, 0); // Set hours and minutes\r\n\r\n return this.datePipe.transform(customDate, format) || '';\r\n }\r\n }\r\n\r\n return '';\r\n }\r\n\r\n openDatePicker() {\r\n this.datepicker.toggle();\r\n }\r\n\r\n openDateRangePicker() {\r\n this.dateRangePicker.toggle();\r\n }\r\n\r\n openDateAndTimePicker() {\r\n this.dateAndTimePicker.toggle();\r\n }\r\n \r\n\r\n validateField() {\r\n if (this.dateType === 'DATE_ONLY') {\r\n if (this.selectedDate) {\r\n this.question.answer = this.formatDate(this.selectedDate.toString());\r\n } else {\r\n this.question.answer = '';\r\n }\r\n \r\n this.validateDateOnly()\r\n }\r\n else if(this.dateType === 'TIME_ONLY'){\r\n this.question.answer=String(this.selectedTime);\r\n this.validateTimeOnly()\r\n }\r\n else if (this.dateType === 'DATE_AND_TIME') {\r\n if (this.selectedDateAndTime) {\r\n this.question.answer = this.formatDate(this.selectedDateAndTime.toString());\r\n } else {\r\n this.question.answer = '';\r\n }\r\n \r\n this.validateDateAndTime()\r\n\r\n }\r\n else {\r\n this.question.answer = this.formatDate(this.selectedDateRange);\r\n this.validateDateRange()\r\n }\r\n }\r\n\r\n formatDate(date: string | Date, type: string = 'dateTime'): string {\r\n switch (this.dateType) {\r\n case 'DATE_ONLY':\r\n return this.datePipe.transform(this.selectedDate, 'dd/MM/yyyy') || '';\r\n case 'DATE_AND_TIME':\r\n const formattedDate = this.datePipe.transform(this.selectedDateAndTime, 'dd/MM/yyyy');\r\n const formatteminDate = this.datePipe.transform(this.minDate, 'dd/MM/yyyy');\r\n const formattemaxDate = this.datePipe.transform(this.maxDate, 'dd/MM/yyyy');\r\n if(formattedDate===formatteminDate){\r\n this.minTime=this.getMinTime().toString();\r\n if (this.timeFormat=== '12') {\r\n this.maxTime = '12:00 pm';\r\n } else {\r\n this.maxTime = '23:00';\r\n }\r\n }\r\n if(formattedDate===formattemaxDate){\r\n this.maxTime=this.getMaxTime().toString();\r\n if (this.timeFormat === '12') {\r\n this.minTime = '12:00 am';\r\n } else {\r\n this.minTime = '00:00';\r\n }\r\n }\r\n if(formattedDate!==formatteminDate && formattedDate!==formattemaxDate){\r\n if (this.timeFormat === '12') {\r\n this.minTime = '12:00 am';\r\n this.maxTime = '12:00 pm';\r\n } else {\r\n this.minTime = '00:00';\r\n this.maxTime = '23:00';\r\n }\r\n }\r\n const formattedTime = this.selectedTime || ''; // If selectedTime is null or undefined, use empty string\r\n if (formattedDate && formattedTime) {\r\n return `${formattedDate},${formattedTime}`;\r\n }\r\n return '';\r\n case 'DATE_RANGE':\r\n \r\n const dates = date as unknown as Date[];\r\n \r\n // Ensure dates is defined and is an array\r\n if (Array.isArray(dates) && dates.length === 2) {\r\n const start = this.datePipe.transform(dates[0], 'dd/MM/yyyy');\r\n const end = this.datePipe.transform(dates[1], 'dd/MM/yyyy');\r\n return `${start} - ${end}`;\r\n }\r\n \r\n return '';\r\n default:\r\n return this.datePipe.transform(date, 'dd/MM/yyyy') || '';\r\n }\r\n }\r\n\r\n validateDateOnly() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (this.required && !this.selectedDate) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n }\r\n validateTimeOnly() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (this.required && !this.selectedTime) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';;\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n }\r\n validateDateRange() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (this.required && !this.selectedDateRange) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n }\r\n validateDateAndTime() {\r\n this.validationFailed = false;\r\n this.timeValidationFailed= false;\r\n this.validationMessage = '';\r\n if (this.required && !this.selectedDateAndTime ) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.question.validation = false;\r\n }\r\n else if(this.required && !this.selectedTime){\r\n this.timeValidationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n }\r\n\r\n convertToISODate(\r\n dateInput: [number, number, number] | string | null | undefined\r\n ): Date | null {\r\n \r\n \r\n if (!dateInput) {\r\n \r\n \r\n return null; // Return null if dateInput is null, undefined, or any falsy value\r\n }\r\n\r\n let year, month, day;\r\n\r\n if (Array.isArray(dateInput)) {\r\n // Extract year, month, and day from array input\r\n [year, month, day] = dateInput;\r\n\r\n // Validate the array format\r\n if (\r\n typeof year !== 'number' ||\r\n typeof month !== 'number' ||\r\n typeof day !== 'number' ||\r\n isNaN(year) ||\r\n isNaN(month) ||\r\n isNaN(day) ||\r\n !Number.isInteger(year) ||\r\n !Number.isInteger(month) ||\r\n !Number.isInteger(day) ||\r\n month < 1 ||\r\n month > 12 ||\r\n day < 1 ||\r\n day > 31\r\n ) {\r\n return null;\r\n }\r\n } else if (typeof dateInput === 'string') {\r\n // Check if the string matches the YYYY-MM-DD format\r\n const dateParts = dateInput.split('-');\r\n if (dateParts.length !== 3) return null;\r\n\r\n [year, month, day] = dateParts.map(Number);\r\n\r\n // Validate the parsed parts\r\n if (\r\n isNaN(year) ||\r\n isNaN(month) ||\r\n isNaN(day) ||\r\n !Number.isInteger(year) ||\r\n !Number.isInteger(month) ||\r\n !Number.isInteger(day) ||\r\n month < 1 ||\r\n month > 12 ||\r\n day < 1 ||\r\n day > 31\r\n ) {\r\n return null;\r\n }\r\n } else {\r\n return null; // Unsupported input type\r\n }\r\n\r\n // Create a Date object (month is 0-based, so subtract 1)\r\n const date = new Date(year, month - 1, day);\r\n\r\n // Verify if the Date object matches the provided year, month, and day\r\n if (\r\n date.getFullYear() !== year ||\r\n date.getMonth() !== month - 1 ||\r\n date.getDate() !== day\r\n ) {\r\n return null;\r\n }\r\n\r\n return date;\r\n }\r\n\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"dateType === 'DATE_ONLY'\">\r\n <!-- Date only picker -->\r\n <div class=\"input-container\">\r\n <input\r\n class=\"form-control height\"\r\n #datepickerYMD=\"bsDatepicker\"\r\n bsDatepicker\r\n [minDate]=\"minDate ? minDate : undefined\"\r\n [maxDate]=\"maxDate ? maxDate : undefined\"\r\n [bsConfig]=\"{ dateInputFormat: format }\"\r\n [(ngModel)]=\"selectedDate\"\r\n (blur)=\"validateField()\"\r\n (ngModelChange)=\"validateField()\"\r\n [class.invalid]=\"validationFailed\"\r\n placeholder=\"Select date\"\r\n />\r\n <i\r\n class=\"fa-solid fa-calendar-days calendar-icon text-primary fs-5\"\r\n (click)=\"openDatePicker()\"\r\n ></i>\r\n </div>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"dateType === 'TIME_ONLY'\">\r\n <!-- Time picker -->\r\n\r\n\r\n<div class=\"input-container\">\r\n <input\r\n class=\"form-control height appearanceInput mt-3\"\r\n aria-label=\"Select time\"\r\n placeholder=\"Select time\"\r\n readonly\r\n [format]=\"timeFormat==='24'?24:12\"\r\n [ngxTimepicker]=\"fullTime3\"\r\n [(ngModel)]=\"selectedTime\"\r\n [max]=\"maxTime\"\r\n [min]=\"minTime\"\r\n (ngModelChange)=\"validateField()\"\r\n [class.invalid]=\"validationFailed\"\r\n />\r\n \r\n <i\r\n id=\"startDateIcon\"\r\n class=\"fa-solid fa-clock text-primary fs-6 clock-icon\"\r\n (click)=\"fullTime3.open()\"\r\n style=\"cursor: pointer;\"\r\n></i>\r\n <ngx-material-timepicker #fullTime3></ngx-material-timepicker>\r\n</div>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"dateType === 'DATE_AND_TIME'\">\r\n <!-- Date and time picker -->\r\n <div class=\"input-container\">\r\n <input\r\n #dateAndTimePicker=\"bsDatepicker\"\r\n type=\"text\"\r\n class=\"form-control height\"\r\n [minDate]=\"minDate ? minDate : undefined\"\r\n [maxDate]=\"maxDate ? maxDate : undefined\"\r\n [bsConfig]=\"{\r\n dateInputFormat: format\r\n }\"\r\n placeholder=\"Select date\"\r\n bsDatepicker\r\n [class.invalid]=\"validationFailed\"\r\n [(ngModel)]=\"selectedDateAndTime\"\r\n (blur)=\"validateField()\"\r\n (ngModelChange)=\"validateField()\"\r\n />\r\n <i\r\n class=\"fa-solid fa-calendar-days calendar-icon text-primary fs-5\"\r\n (click)=\"openDateAndTimePicker()\"\r\n ></i>\r\n </div>\r\n <div class=\"input-container\" *ngIf=\"selectedDateAndTime && selectedDateAndTime != null\">\r\n <input\r\n \r\n class=\"form-control height appearanceInput mt-3\"\r\n aria-label=\"Select time\"\r\n placeholder=\"Select time\"\r\n readonly\r\n [format]=\"timeFormat==='24'?24:12\"\r\n [ngxTimepicker]=\"fullTime4\"\r\n [(ngModel)]=\"selectedTime\"\r\n [max]=\"maxTime\"\r\n [min]=\"minTime\"\r\n (ngModelChange)=\"validateField()\"\r\n [class.invalid]=\"timeValidationFailed\"\r\n />\r\n \r\n <i\r\n id=\"startDateIcon\"\r\n class=\"fa-solid fa-clock text-primary fs-6 clock-icon\"\r\n (click)=\"fullTime4.open()\"\r\n style=\"cursor: pointer;\"\r\n ></i>\r\n <ngx-material-timepicker #fullTime4></ngx-material-timepicker>\r\n </div>\r\n \r\n <div *ngIf=\"validationFailed || timeValidationFailed\" class=\"text-danger mt-2\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"dateType === 'DATE_RANGE'\">\r\n <!-- Date range picker -->\r\n <div class=\"input-container\">\r\n <input\r\n type=\"text\"\r\n class=\"form-control height\"\r\n #daterangepicker=\"bsDaterangepicker\"\r\n bsDaterangepicker\r\n placeholder=\"Select date\"\r\n [minDate]=\"minDate ? minDate : undefined\"\r\n [maxDate]=\"maxDate ? maxDate : undefined\"\r\n [bsConfig]=\"{\r\n rangeInputFormat: format,\r\n dateInputFormat: format,\r\n }\"\r\n [(ngModel)]=\"selectedDateRange\"\r\n (blur)=\"validateField()\"\r\n (ngModelChange)=\"validateField()\"\r\n [class.invalid]=\"validationFailed\"\r\n />\r\n <i\r\n class=\"fa-solid fa-calendar-days calendar-icon text-primary fs-5\"\r\n (click)=\"openDateRangePicker()\"\r\n ></i>\r\n </div>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n </ng-container>\r\n</div>\r\n","import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormService } from '../../services/form.service';\r\n\r\ninterface DropDownData {\r\n value: string;\r\n label: string;\r\n image: string;\r\n}\r\n\r\n@Component({\r\n selector: 'lib-drop-down-fields',\r\n templateUrl: './drop-down-fields.component.html',\r\n styleUrls: ['./drop-down-fields.component.scss'],\r\n})\r\nexport class DropDownFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n selectionType: string = '';\r\n minimumSelection: number = 0;\r\n maximumSelection: number = 0;\r\n optionType: string = '';\r\n lookupTable: string = '';\r\n customOptions: DropDownData[] = [];\r\n database: any = {};\r\n api: any = {};\r\n selectedValue: any[] = [];\r\n validationFailed!: boolean;\r\n validationMessage: string = '';\r\n\r\n constructor(private formService: FormService,\r\n private cdr:ChangeDetectorRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n onValueChange(newValue: any) {\r\n this.selectedValue = newValue;\r\n this.selectItems();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.selectionType = this.question.formElement.appearance.selectionType;\r\n this.minimumSelection =\r\n this.question.formElement.validation.minimumSelection;\r\n this.maximumSelection =\r\n this.question.formElement.validation.maximumSelection;\r\n this.optionType = this.question.formElement.option.optionType;\r\n switch (this.optionType) {\r\n case 'OPTION':\r\n this.customOptions = this.question.formElement.option.customOptions.map(\r\n (option: { value: string }) => ({\r\n label: option.value,\r\n value: option.value,\r\n image: '',\r\n })\r\n );\r\n if (this.question.answer) {\r\n this.initializeCustomOption();\r\n }\r\n break;\r\n case 'LOOKUP':\r\n this.lookupTable = this.question.formElement.option.lookupTable;\r\n this.fetchDataFromLookup();\r\n break;\r\n case 'DATABASE':\r\n this.database = this.question.formElement.option.database;\r\n this.fetchDataFromDatabase();\r\n break;\r\n case 'API':\r\n this.api = this.question.formElement.option.api;\r\n this.fetchDataFromAPI();\r\n break;\r\n default:\r\n console.warn('Unknown option type:', this.optionType);\r\n }\r\n\r\n if(this.question.childLogics && this.question.answer){\r\n this.updateChildLogics(this.question)\r\n }\r\n }\r\n\r\n initializeCustomOption() {\r\n this.customOptions.forEach((option: any) => {\r\n const isMatch = this.question?.answer?.some((a: any) => {\r\n const parts = a.trim().split('|'); \r\n if (parts.length === 2) {\r\n const label = parts[0]; \r\n const value = parts[1]; \r\n return value === option.value; \r\n } else {\r\n return false; \r\n }\r\n });\r\n if (isMatch) {\r\n this.selectedValue.push(option);\r\n }\r\n });\r\n \r\n \r\n \r\n this.cdr.detectChanges();\r\n }\r\n\r\n transformDatabaseObject(database: any) {\r\n return {\r\n tableName: database.tableName,\r\n valueField: database.valueField,\r\n labelField: database.labelField,\r\n criteria: database.criteria.map((criteria: any) => ({\r\n field: criteria.field,\r\n valueSource:criteria?.valueSource,\r\n condition: criteria.condition,\r\n value: criteria.inputValue,\r\n logicalOperator: criteria.logicalOperator,\r\n })),\r\n };\r\n }\r\n\r\n\r\n fetchDataFromDatabase() {\r\n const transformedDatabase = this.transformDatabaseObject(this.database);\r\n this.formService.fetchDataFromDatabase(transformedDatabase).subscribe(\r\n (response) => {\r\n if (response.success) {\r\n this.customOptions = response.result.map(\r\n (item: { value: string; label: string }) => ({\r\n value: item.value,\r\n label: item.label,\r\n })\r\n );\r\n if (this.question.answer) {\r\n this.initializeCustomOption();\r\n }\r\n } else {\r\n console.error('Error fetching data from database:', response.message);\r\n }\r\n this.cdr.detectChanges();\r\n },\r\n (error) => {\r\n console.error('HTTP Error:', error);\r\n this.cdr.detectChanges();\r\n }\r\n );\r\n }\r\n\r\n fetchDataFromLookup() {\r\n this.formService.fetchDataFromLookup(this.lookupTable).subscribe(\r\n (response) => {\r\n this.customOptions = response.result.values.map(\r\n (item: { value: string; label: string }) => ({\r\n value: item.value,\r\n label: item.label,\r\n })\r\n );\r\n if (this.question.answer) {\r\n this.initializeCustomOption();\r\n }\r\n },\r\n (error) => {\r\n console.error('HTTP Error:', error);\r\n }\r\n );\r\n }\r\n\r\n fetchDataFromAPI() {\r\n const apiConfig = this.api;\r\n this.formService.fetchDataFromExternalAPI(apiConfig).subscribe(\r\n (response) => {\r\n let data;\r\n if(apiConfig.pathToValue) {\r\n data = this.extractDataByPath(response, apiConfig.pathToValue);\r\n } else {\r\n data = response;\r\n }\r\n \r\n this.customOptions = data.map((item: any) => ({\r\n value: item[apiConfig.valueField.trim()],\r\n label: item[apiConfig.labelField.trim()],\r\n }));\r\n if (this.question.answer) {\r\n this.initializeCustomOption();\r\n }\r\n },\r\n (error) => {\r\n console.error('HTTP Error:', error);\r\n }\r\n );\r\n }\r\n\r\n extractDataByPath(data: any, path: string) {\r\n return path.split('.').reduce((acc, part) => acc && acc[part], data);\r\n }\r\n\r\n selectItems() {\r\n const valuesArray = this.selectedValue.map(item => `${item.label}|${item.value}`);\r\n this.question.answer = valuesArray; \r\n this.validationFailed = false;\r\n this.validationMessage = ''; \r\n if (this.selectedValue.length == 0 && this.required) {\r\n this.validationFailed = true;\r\n this.validationMessage = `This is a required question`;\r\n this.question.validation = false;\r\n } else if (\r\n this.selectedValue.length < this.minimumSelection ||\r\n this.selectedValue.length > this.maximumSelection\r\n ) {\r\n this.validationFailed = true;\r\n this.validationMessage = `selected options must be between ${this.minimumSelection} & ${this.maximumSelection}`;\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n if (this.question.childLogics) {\r\n this.updateChildLogics(this.question);\r\n }\r\n }\r\n\r\n updateChildLogics(question: any) {\r\n if (question.childLogics && Array.isArray(question.childLogics)) {\r\n question.childLogics.forEach((childLogic: any) => {\r\n if(this.selectionType=='SINGLE'){\r\n if(this.selectedValue.length==0){\r\n childLogic.show=false;\r\n }\r\n else{\r\n const selectedValue=this.selectedValue[0]?.value\r\n childLogic.showLogic = this.evaluateCondition(selectedValue, childLogic.condition, childLogic.inputValue);\r\n }\r\n \r\n }\r\n else if (this.selectionType === 'MULTIPLE') {\r\n if(this.selectedValue.length==0){\r\n childLogic.show=false;\r\n }\r\n else{\r\n const selectedValues = this.selectedValue.map((item: any) => item.value);\r\n childLogic.showLogic = this.evaluateMultipleCondition(selectedValues, childLogic.condition, childLogic.inputValue);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n evaluateCondition(answer: any[], condition: string, inputValue: any): boolean {\r\n switch (condition) {\r\n case \"!=\":\r\n return answer != inputValue;\r\n case \"=\":\r\n return answer == inputValue;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n evaluateMultipleCondition(answers: any[], condition: string, inputValue: any): boolean {\r\n const stringInputValue = Array.isArray(inputValue) ? inputValue.map(val => val.toString()) : inputValue.toString();\r\n switch (condition) {\r\n case \"!=\":\r\n return answers.every(answer => answer != stringInputValue);\r\n case \"=\":\r\n return answers.some(answer => answer == stringInputValue);\r\n case \"IN\":\r\n return answers.some(answer => stringInputValue.includes(answer));\r\n case \"NOT IN\":\r\n return answers.every(answer => !stringInputValue.includes(answer));\r\n default:\r\n return false;\r\n }\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <lib-dropdown\r\n [items]=\"customOptions\"\r\n [multiple]=\"selectionType === 'SINGLE' ? false : true\"\r\n (click)=\"selectItems()\"\r\n [(selectedItems)]=\"selectedValue\"\r\n ></lib-dropdown>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger mb-2\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\nexport interface Attachment {\r\n fileId: string;\r\n fileName: string;\r\n fileUrl: string;\r\n}\r\n\r\n@Component({\r\n selector: 'lib-file-picker-fields',\r\n templateUrl: './file-picker-fields.component.html',\r\n styleUrls: ['./file-picker-fields.component.scss'],\r\n})\r\nexport class FilePickerFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n multiFileUploads: boolean = true;\r\n fileTypes: string[] = [];\r\n fileSize: number = 0;\r\n fileSizeUnit: string = '';\r\n totalFileSize: number = 0;\r\n initialFileSize: number = 0;\r\n initialTotalSize: number = 0;\r\n dragAndDrop: boolean = false;\r\n previewUploadedFiles: boolean = true;\r\n validationFailed: boolean = false;\r\n validationMessage: string = '';\r\n attachments: Attachment[] = [];\r\n\r\n avatarPicker: boolean = false;\r\n files: any;\r\n\r\n handleFileTypeNotAllowed(fileType: string): void {\r\n this.validationFailed = true;\r\n this.validationMessage = 'File type not allowed';\r\n }\r\n\r\n handleFileSize(event: string): void {\r\n this.validationFailed = true;\r\n if (event === 'File size exceeds the limit') {\r\n this.validationMessage = `${event} ${this.initialFileSize} ${this.fileSizeUnit}`;\r\n } else if (event === 'Total size exceeds the limit') {\r\n this.validationMessage = `${event} ${this.initialTotalSize} ${this.fileSizeUnit}`;\r\n } else {\r\n this.validationMessage = event;\r\n }\r\n this.clearValidationMessageAfterTimeout();\r\n }\r\n\r\n clearValidationMessageAfterTimeout(): void {\r\n setTimeout(() => {\r\n this.validationMessage = '';\r\n this.validationFailed = false;\r\n }, 5000); // Timeout set to 5 seconds\r\n }\r\n\r\n\r\n handleFinalArray(fileType: any[]): void {\r\n const extractedData = fileType.map((item: any) => ({\r\n name: item._file.name,\r\n size: item._file.size,\r\n type: item._file.type,\r\n }));\r\n const jsonString = JSON.stringify(extractedData);\r\n this.question.answer = fileType;\r\n }\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.multiFileUploads =\r\n this.question.formElement.appearance.multiFileUploads;\r\n this.dragAndDrop = this.question.formElement.appearance.dragAndDrop;\r\n this.previewUploadedFiles =\r\n this.question.formElement.appearance.previewUploadedFiles;\r\n this.fileTypes = this.question.formElement.validation.fileTypes;\r\n this.fileSizeUnit = this.question.formElement.validation.fileSizeUnit;\r\n this.avatarPicker = this.question.formElement.appearance.avatarPicker;\r\n this.initialFileSize = this.question.formElement.validation?.fileSize;\r\n this.fileSize = this.convertToBytes(\r\n this.initialFileSize,\r\n this.fileSizeUnit\r\n );\r\n this.initialTotalSize = this.question.formElement.validation?.totalFileSize;\r\n this.totalFileSize = this.convertToBytes(\r\n this.initialTotalSize,\r\n this.fileSizeUnit\r\n );\r\n\r\n if (this.question.answer) {\r\n this.files = this.question.answer;\r\n }\r\n\r\n this.attachments = this.question?.attachments;\r\n }\r\n convertToBytes(size: number, unit: string): number {\r\n const units: { [key: string]: number } = {\r\n B: 1,\r\n KB: 1024,\r\n MB: 1024 * 1024,\r\n GB: 1024 * 1024 * 1024,\r\n };\r\n return size * (units[unit.toUpperCase()] || 1);\r\n }\r\n\r\n selectedFile!: File;\r\n selectedFiles: any = [];\r\n\r\n onFileChange(event: any) {\r\n const file: File = event.target.files[0];\r\n this.selectedFile = file;\r\n this.selectedFiles.push(this.selectedFile);\r\n this.question.answer = this.selectedFiles;\r\n }\r\n\r\n deleteFiles(event: any) {\r\n this.question.deleteFiles = event;\r\n this.question.attachments = this.question.attachments.filter(\r\n (item: any) => {\r\n return !event.includes(item.fileId);\r\n }\r\n );\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <lib-docUpload\r\n [totalSize]=\"totalFileSize\"\r\n [fileAllowed]=\"fileTypes\"\r\n [multiple]=\"multiFileUploads\"\r\n [fileSize]=\"fileSize\"\r\n [avatarPicker]=\"avatarPicker\"\r\n (fileTypeNotAllowed)=\"handleFileTypeNotAllowed($event)\"\r\n (fileSizeAllowed)=\"handleFileSize($event)\"\r\n (finalArray)=\"handleFinalArray($event)\"\r\n [attachments] = \"attachments\"\r\n (deleteFiles)=\"deleteFiles($event)\"\r\n [files]=\"files\"\r\n [dragAndDrop]=\"dragAndDrop\"\r\n ></lib-docUpload>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n</div>\r\n","import { Component, Input, ViewChild, ElementRef } from '@angular/core';\r\nimport { GoogleMap } from '@angular/google-maps';\r\n\r\n@Component({\r\n selector: 'lib-location-fields',\r\n templateUrl: './location-fields.component.html',\r\n styleUrls: ['./location-fields.component.scss'],\r\n})\r\nexport class LocationFieldsComponent {\r\n @Input() question: any = {};\r\n @ViewChild('mapSearchField')\r\n searchField!: ElementRef;\r\n @ViewChild(GoogleMap) map!: GoogleMap;\r\n\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n defaultZoomLevel: number = 0;\r\n setCurrentPosition: boolean = false;\r\n allowFullScreen: boolean = false;\r\n latitude: number = 0;\r\n longitude: number = 0;\r\n regionBoundary: boolean = false;\r\n region: string = '';\r\n showGoogleMap!: boolean;\r\n mapConfigurations: any = {};\r\n\r\n ngOnInit() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.defaultZoomLevel =\r\n this.question.formElement.appearance.defaultZoomLevel;\r\n this.setCurrentPosition =\r\n this.question.formElement.appearance.setCurrentPosition;\r\n this.allowFullScreen = this.question.formElement.appearance.allowFullScreen;\r\n this.latitude = this.question.formElement.appearance.latitude;\r\n this.longitude = this.question.formElement.appearance.longitude;\r\n this.regionBoundary = this.question.formElement.validation.regionBoundary;\r\n this.region = this.question.formElement.validation.region;\r\n this.mapConfigurations = {\r\n disableDefaultUI: true,\r\n fullscreenControl: this.allowFullScreen,\r\n zoomControl: true,\r\n };\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const searchBox = new google.maps.places.SearchBox(\r\n this.searchField.nativeElement\r\n );\r\n\r\n this.map.controls[google.maps.ControlPosition.TOP_CENTER].push(\r\n this.searchField.nativeElement\r\n );\r\n\r\n searchBox.addListener('places_changed', () => {\r\n const places = searchBox.getPlaces();\r\n if (places?.length === 0) {\r\n return;\r\n }\r\n\r\n const bounds = new google.maps.LatLngBounds();\r\n places?.forEach((place) => {\r\n if (!place.geometry || !place.geometry.location) {\r\n return;\r\n }\r\n\r\n if (place.geometry.viewport) {\r\n // Only geocodes have viewport.\r\n bounds.union(place.geometry.viewport);\r\n } else {\r\n bounds.extend(place.geometry.location);\r\n }\r\n });\r\n\r\n this.map.fitBounds(bounds);\r\n });\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"input-group\">\r\n <input\r\n type=\"text\"\r\n class=\"form-control location-input\"\r\n placeholder=\"Enter location\"\r\n #locationInput\r\n />\r\n </div>\r\n\r\n <input #mapSearchField class=\"my-map-search-field\" type=\"text\" />\r\n <google-map width=\"100%\" [options]=\"mapConfigurations\"></google-map>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-mail-fields',\r\n templateUrl: './mail-fields.component.html',\r\n styleUrls: ['./mail-fields.component.scss'],\r\n})\r\nexport class MailFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n placeholder: string = '';\r\n expectedDomains: string[] = [];\r\n regularExpression: string = '';\r\n email: string = '';\r\n validationFailed: boolean = false;\r\n validationMessage: string = '';\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.placeholder = this.question.formElement?.appearance?.placeholder || '';\r\n this.expectedDomains =\r\n this.question?.formElement?.validation?.expectedDomains\r\n ?.split(',')\r\n .map((domain: any) => domain.trim());\r\n this.regularExpression =\r\n this.question.formElement.validation.regularExpression;\r\n this.email = this.question?.answer \r\n }\r\n\r\n validateEmail() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n const enteredEmail = this.email?.trim().toLowerCase();\r\n if (this.required && !this.email) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.question.validation = false;\r\n } else if (this.expectedDomains) {\r\n const isValidEmail = this.expectedDomains?.some((domain) =>\r\n enteredEmail.endsWith(domain)\r\n );\r\n this.validationFailed = !isValidEmail;\r\n this.validationMessage = 'Please enter valid email address';\r\n if (this.validationFailed) {\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n }\r\n validateInput(event: any) {\r\n this.question.answer = event.target.value;\r\n this.validateEmail();\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <input\r\n type=\"email\"\r\n class=\"form-control mb-2 height\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"email\"\r\n (blur)=\"validateEmail()\"\r\n (input)=\"validateInput($event)\"\r\n [class.invalid]=\"validationFailed\"\r\n />\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DataService } from './data.service';\r\n\r\ninterface CountryData {\r\n value: string;\r\n label: string;\r\n image: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CountryService {\r\n private apiUrl: string = '';\r\n header: any = {};\r\n\r\n constructor(private http: HttpClient, private dataService: DataService) {\r\n this.dataService.apiUrl$.subscribe((data) => {\r\n this.apiUrl = data;\r\n });\r\n }\r\n\r\n loadCountryDetails(questionId: string, page: number, size: number, searchKey: string): Observable<any> {\r\n return this.http.get<any>(`${this.apiUrl}/api/public/json/country/${questionId}?page=${page}&size=${size}&searchKey=${searchKey}`);\r\n }\r\n\r\n processCountryDetails(\r\n data: any[],\r\n displayFlag: boolean,\r\n displayCode: boolean,\r\n showCountryName: boolean\r\n ): CountryData[] {\r\n const countryDetails: CountryData[] = [];\r\n\r\n data.forEach((country) => {\r\n const name = showCountryName ? country.name || '' : '';\r\n let flag = '';\r\n if (displayFlag && country.flag) {\r\n flag = country.flag;\r\n }\r\n\r\n if (\r\n displayCode &&\r\n country.isd &&\r\n country.isd.root &&\r\n country.isd.suffixes?.length > 0\r\n ) {\r\n country.isd.suffixes.forEach((suffix: string) => {\r\n const isdCode = `${country.isd.root}${suffix}`;\r\n countryDetails.push({\r\n value: isdCode,\r\n label: `${name} ${isdCode}`,\r\n image: flag,\r\n });\r\n });\r\n } else if (displayCode) {\r\n countryDetails.push({\r\n value: name,\r\n label: country.isd?.root || '',\r\n image: flag,\r\n });\r\n } else if (!displayCode && !displayFlag) {\r\n countryDetails.push({\r\n value: name,\r\n label: '',\r\n image: '',\r\n });\r\n }\r\n });\r\n\r\n return countryDetails;\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output, OnInit } from '@angular/core';\r\nimport { CountryService } from '../../services/countryService';\r\n\r\ninterface CountryData {\r\n value: string;\r\n label: string;\r\n image: string;\r\n}\r\n\r\ninterface filteredCountry {\r\n name: string;\r\n flag: string;\r\n isd: {};\r\n languages: {};\r\n}\r\n\r\n@Component({\r\n selector: 'lib-mobile-fields',\r\n templateUrl: './mobile-fields.component.html',\r\n styleUrls: ['./mobile-fields.component.scss'],\r\n})\r\nexport class MobileFieldsComponent implements OnInit {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n placeholder: string = '';\r\n displayCountryCode: boolean = true;\r\n displayFlag: boolean = true;\r\n displayCode: boolean = true;\r\n showCountryName: boolean = true;\r\n beautifyNumbers: boolean = true;\r\n countryWiseValidation: boolean = true;\r\n countryDetails: CountryData[] = [];\r\n selectedCountry: CountryData[] = [];\r\n validationFailed: boolean = false;\r\n validationMessage: string = '';\r\n mobileNumber: string = '';\r\n filteredCountry: filteredCountry[] = [];\r\n questionId: string = '';\r\n currentPage: number = 0;\r\n size: number = 30;\r\n totalPages: number = 0;\r\n searchKey: string = '';\r\n lastPage:boolean=false;\r\n isFirstPage: boolean = false;\r\n constructor(private countryService: CountryService) { }\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.placeholder = this.question.formElement.appearance.placeholder;\r\n this.displayCountryCode =\r\n this.question.formElement.appearance.displayCountryCode;\r\n this.displayFlag = this.question.formElement.appearance.displayFlag;\r\n this.displayCode = this.question.formElement.appearance.displayCode;\r\n this.showCountryName = this.question.formElement.appearance.showCountryName;\r\n this.beautifyNumbers = this.question.formElement.appearance.beautifyNumbers;\r\n this.countryWiseValidation =\r\n this.question.formElement.validation.countryWiseValidation;\r\n this.questionId = this.question.id;\r\n this.loadCountry(this.questionId, this.currentPage, this.size, this.searchKey);\r\n }\r\n\r\n\r\n initializeAnswer() {\r\n const [countryCode, mobileNumber] = this.question?.answer?.split(' ');\r\n this.mobileNumber = mobileNumber || '';\r\n\r\n const matchedCountry = this.countryDetails.find(country => country.value === countryCode);\r\n if (matchedCountry) {\r\n this.selectedCountry.push(matchedCountry);\r\n } \r\n }\r\n\r\n onCountryChange() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n this.updateAnswer();\r\n }\r\n\r\n onMobileNumberChange() {\r\n this.updateAnswer();\r\n }\r\n\r\n updateAnswer() {\r\n if (this.selectedCountry.length > 0 && this.mobileNumber) {\r\n const countryCode = this.selectedCountry[0].value;\r\n this.question.answer = `${countryCode} ${this.mobileNumber}`;\r\n } else {\r\n this.question.answer = '';\r\n }\r\n }\r\n\r\n validateMobile() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n\r\n if (this.required && (!this.mobileNumber || this.selectedCountry.length === 0)) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n } else {\r\n this.updateAnswer();\r\n }\r\n }\r\n\r\n loadCountry(id: string, currentPage: number, size: number, searchKey: string) {\r\n this.countryService.loadCountryDetails(this.questionId, currentPage, size, searchKey).subscribe((data) => {\r\n if (this.totalPages === 0) {\r\n this.totalPages = data.result.totalPages;\r\n }\r\n this.lastPage=data.result.last;\r\n this.isFirstPage = data.result.first;\r\n\r\n let newCountries=this.countryService.processCountryDetails(\r\n data.result.content,\r\n this.displayFlag,\r\n this.displayCode,\r\n this.showCountryName\r\n )\r\n\r\n if (this.currentPage > 0) {\r\n this.countryDetails = [\r\n ...this.countryDetails,\r\n ...newCountries.filter(item => !this.countryDetails.some((existing: any) => existing.value === item.value))\r\n ];\r\n } else {\r\n this.countryDetails = [\r\n ...newCountries.filter(item => !this.countryDetails.some((existing: any) => existing.value === item.value)),\r\n ...this.countryDetails\r\n ];\r\n }\r\n\r\n\r\n // if (this.currentPage < this.totalPages - 1) {\r\n // this.currentPage++;\r\n // this.loadCountry(this.questionId, this.currentPage, this.size, this.searchKey);\r\n // }\r\n if (this.question.answer) {\r\n this.initializeAnswer();\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n getNextSetOfItems(event: any) {\r\n const element = event.target;\r\n if (!this.lastPage) {\r\n if (element.scrollHeight - element.scrollTop === element.clientHeight) {\r\n this.loadMoreData();\r\n }\r\n }\r\n if (!this.isFirstPage && element.scrollTop <= 150) {\r\n this.loadPreviousData();\r\n }\r\n }\r\n\r\n loadMoreData() {\r\n setTimeout(() => {\r\n this.currentPage++;\r\n if (this.currentPage >= 0) {\r\n this.loadCountry(this.questionId,this.currentPage, this.size, \"\");\r\n }\r\n }, 0);\r\n }\r\n\r\n loadPreviousData() {\r\n setTimeout(() => {\r\n this.currentPage--;\r\n if (this.currentPage >= 0) {\r\n this.loadCountry(this.questionId,this.currentPage, this.size, \"\");\r\n }\r\n }, 0);\r\n }\r\n\r\n search(searchTerm: any) {\r\n if (searchTerm == '') {\r\n this.loadCountry(this.questionId,this.currentPage, this.size, \"\");\r\n }\r\n else {\r\n this.countryDetails = []; \r\n this.loadCountry(this.questionId,this.currentPage, this.size, searchTerm);\r\n }\r\n }\r\n\r\n}\r\n\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"input-group mb-2\">\r\n <div class=\"col-xs-5 col-5 col-md-3 px-0 pe-2 ps-2\">\r\n <lib-dropdown\r\n [items]=\"countryDetails\"\r\n [multiple]=\"false\"\r\n [(selectedItems)]=\"selectedCountry\"\r\n (selectedItemsChange)=\"onCountryChange()\"\r\n (onDropdownScroll)=\"getNextSetOfItems($event)\"\r\n (onSearch)=\"search($event)\"\r\n ></lib-dropdown>\r\n </div>\r\n <input\r\n type=\"number\"\r\n class=\"form-control col-xs-7 col-7 col-md-9 height mobileField\"\r\n [placeholder]=\"placeholder\"\r\n aria-label=\"Mobile Number\"\r\n [class.invalid]=\"validationFailed\"\r\n (blur)=\"validateMobile()\"\r\n [(ngModel)]=\"mobileNumber\"\r\n (ngModelChange)=\"onMobileNumberChange()\"\r\n />\r\n </div>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { Logic } from '../../models/logic.model';\r\n\r\n@Component({\r\n selector: 'lib-number-fields',\r\n templateUrl: './number-fields.component.html',\r\n styleUrls: ['./number-fields.component.scss'],\r\n})\r\nexport class NumberFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n upDown!: boolean;\r\n allowNegativeValues!: boolean;\r\n placeholder: string = '';\r\n min!: number;\r\n max!: number;\r\n enteredNumber!: number;\r\n validationFailed: boolean = false;\r\n validationMessage: string = '';\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.upDown = this.question.formElement.appearance.upAndDownButton;\r\n this.allowNegativeValues =\r\n this.question.formElement.appearance.allowNegativeValues;\r\n this.placeholder = this.question.formElement?.appearance?.placeholder || '';\r\n this.min = this.question.formElement.validation.min;\r\n this.max = this.question.formElement.validation.max;\r\n this.enteredNumber = this.question?.answer;\r\n if (this.question.childLogics && this.question.answer) {\r\n this.updateChildLogics(this.question);\r\n }\r\n }\r\n validateNumber() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (this.required && !this.enteredNumber) {\r\n this.validationFailed = true;\r\n this.validationMessage = `Please enter a valid number`;\r\n this.question.validation = false;\r\n } else if (!this.allowNegativeValues && this.enteredNumber < 0) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'Please enter a positive number';\r\n this.question.validation = false;\r\n } else if (\r\n (this.min !== undefined && this.enteredNumber < this.min) ||\r\n (this.max !== undefined && this.enteredNumber > this.max)\r\n ) {\r\n this.validationFailed = true;\r\n\r\n // Construct appropriate validation message based on whether min, max, or both are provided\r\n if (this.min !== undefined && this.max !== undefined) {\r\n this.validationMessage = `Please enter a valid number between ${this.min} and ${this.max}`;\r\n } else if (this.min !== undefined) {\r\n this.validationMessage = `Please enter a number greater than or equal to ${this.min}`;\r\n } else if (this.max !== undefined) {\r\n this.validationMessage = `Please enter a number less than or equal to ${this.max}`;\r\n }\r\n\r\n this.question.validation = false;\r\n } else {\r\n this.question.validation = true;\r\n }\r\n if (this.question.childLogics) {\r\n this.updateChildLogics(this.question);\r\n }\r\n }\r\n\r\n validateInput(event: any) {\r\n this.question.answer = event.target.value;\r\n if (this.question.childLogics) {\r\n this.updateChildLogics(this.question);\r\n }\r\n }\r\n\r\n updateChildLogics(question: any) {\r\n if (question.childLogics && Array.isArray(question.childLogics)) {\r\n question.childLogics.forEach((childLogic: any) => {\r\n if (question.answer == '') {\r\n childLogic.showLogic = false;\r\n this.clearAnswer(childLogic);\r\n return;\r\n }\r\n if (\r\n this.evaluateCondition(\r\n question.answer,\r\n childLogic.condition,\r\n childLogic.inputValue\r\n )\r\n ) {\r\n childLogic.showLogic = true;\r\n } else {\r\n childLogic.showLogic = false;\r\n this.clearAnswer(childLogic);\r\n }\r\n });\r\n }\r\n }\r\n\r\n evaluateCondition(answer: any, condition: any, inputValue: any) {\r\n switch (condition) {\r\n case '>':\r\n return answer > Number(inputValue);\r\n case '<':\r\n return answer < Number(inputValue);\r\n case '>=':\r\n return answer >= Number(inputValue);\r\n case '<=':\r\n return answer <= Number(inputValue);\r\n case '=':\r\n return answer == inputValue;\r\n case '!=':\r\n return answer != inputValue;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n clearAnswer(childLogic: Logic) {\r\n childLogic.formElements.forEach((formElement: any) => {\r\n if (formElement.entityType == 'QUESTION') {\r\n formElement.element.answer = '';\r\n }\r\n });\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <input\r\n type=\"number\"\r\n class=\"form-control mb-2 height\"\r\n [placeholder]=\"placeholder\"\r\n [class.hide-spin-buttons]=\"!upDown\"\r\n (blur)=\"validateNumber()\"\r\n [(ngModel)]=\"enteredNumber\"\r\n [class.invalid]=\"validationFailed\"\r\n (input)=\"validateInput($event)\"\r\n [attr.min]=\"min\"\r\n [attr.max]=\"max\"\r\n />\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-password-fields',\r\n templateUrl: './password-fields.component.html',\r\n styleUrls: ['./password-fields.component.scss'],\r\n})\r\nexport class PasswordFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n confirmPassword!: boolean;\r\n displayStrength!: boolean;\r\n viewButton!: boolean;\r\n maxLength!: number;\r\n minLength!: number;\r\n requireLowercaseLetters!: boolean;\r\n requireUppercaseLetters!: boolean;\r\n requireNumbers!: boolean;\r\n requireSpecialCharacters!: boolean;\r\n allowedSpecialCharacters: string[] = [];\r\n validationMessage: string = '';\r\n cnfrmValidationMessage: string = '';\r\n validationFailed: boolean = false;\r\n validatedCnfrmPassword: boolean = false;\r\n enteredPassword: string = '';\r\n enteredCnfrmPassword: string = '';\r\n passwordStrength: number = 0;\r\n questionId:string='';\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.questionId=this.question.id;\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.confirmPassword = this.question.formElement.appearance.confirmPassword;\r\n this.displayStrength = this.question.formElement.appearance.displayStrong;\r\n this.viewButton = this.question.formElement.appearance.viewButton;\r\n this.maxLength = this.question.formElement.validation.maxLength;\r\n this.minLength = this.question.formElement.validation.minLength;\r\n this.requireLowercaseLetters =\r\n this.question.formElement.validation.requireLowercaseLetters;\r\n this.requireUppercaseLetters =\r\n this.question.formElement.validation.requireUppercaseLetters;\r\n this.requireNumbers = this.question.formElement.validation.requireNumbers;\r\n this.requireSpecialCharacters =\r\n this.question.formElement.validation.requireSpecialCharacters;\r\n if (this.requireSpecialCharacters) {\r\n this.allowedSpecialCharacters =\r\n this.question.formElement.validation.allowedSpecialCharacters\r\n .split(',')\r\n .map((char: any) => char.trim());\r\n }\r\n this.enteredPassword = this.question?.answer;\r\n }\r\n\r\n togglePasswordVisibility() {\r\n let passwordField = document.getElementById(\r\n 'passwordField'+this.questionId\r\n ) as HTMLInputElement;\r\n let eyeIcon = document.getElementById(\r\n 'passwordEyeIcon'+this.questionId\r\n ) as HTMLInputElement;\r\n\r\n if (passwordField.type === 'password') {\r\n passwordField.type = 'text';\r\n eyeIcon.classList.remove('bi-eye-fill');\r\n eyeIcon.classList.add('bi-eye-slash-fill');\r\n } else {\r\n passwordField.type = 'password';\r\n eyeIcon.classList.remove('bi-eye-slash-fill');\r\n eyeIcon.classList.add('bi-eye-fill');\r\n }\r\n }\r\n toggleCnfrmPasswordVisibility() {\r\n let passwordField = document.getElementById(\r\n 'cnfrmPasswordField'+this.questionId\r\n ) as HTMLInputElement;\r\n let eyeIcon = document.getElementById(\r\n 'CnfrmPasswordEyeIcon'+this.questionId\r\n ) as HTMLInputElement;\r\n\r\n if (passwordField.type === 'password') {\r\n passwordField.type = 'text';\r\n eyeIcon.classList.remove('bi-eye-fill');\r\n eyeIcon.classList.add('bi-eye-slash-fill');\r\n } else {\r\n passwordField.type = 'password';\r\n eyeIcon.classList.remove('bi-eye-slash-fill');\r\n eyeIcon.classList.add('bi-eye-fill');\r\n }\r\n }\r\n\r\n checkPasswordMatch() {\r\n this.validatedCnfrmPassword = false;\r\n this.cnfrmValidationMessage = '';\r\n if (this.required && this.confirmPassword && !this.enteredCnfrmPassword) {\r\n this.validatedCnfrmPassword = true;\r\n this.cnfrmValidationMessage = `Please enter a valid password`;\r\n this.question.validation = false;\r\n }\r\n else if (this.enteredPassword != this.enteredCnfrmPassword && this.confirmPassword) {\r\n this.validatedCnfrmPassword = true;\r\n this.cnfrmValidationMessage = 'Passwords do not match';\r\n this.question.validation = false;\r\n }\r\n else{\r\n this.question.validation = true;\r\n }\r\n this.validatePassword();\r\n }\r\n\r\n \r\n\r\n validatePassword() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (this.required && !this.enteredPassword) {\r\n this.validationFailed = true;\r\n this.validationMessage = `Please enter a valid password`;\r\n this.question.validation = false;\r\n } else if (\r\n this.requireLowercaseLetters ||\r\n this.requireUppercaseLetters ||\r\n this.requireNumbers ||\r\n this.requireSpecialCharacters ||\r\n this.minLength ||\r\n this.maxLength\r\n ) { \r\n const lowercaseRegex = /[a-z]/;\r\n const uppercaseRegex = /[A-Z]/;\r\n const numberRegex = /\\d/;\r\n const specialCharacterRegex = new RegExp(`[${this.allowedSpecialCharacters.join('')}]`);\r\n const otherSpecialCharacterRegex = new RegExp(`[^a-zA-Z0-9${this.allowedSpecialCharacters.join('')}]`);\r\n \r\n let lowerCaseValidate = lowercaseRegex.test(this.enteredPassword);\r\n let upperCaseValidate = uppercaseRegex.test(this.enteredPassword);\r\n let containsNumber = numberRegex.test(this.enteredPassword);\r\n let containsSpecialCharacter = specialCharacterRegex.test(this.enteredPassword);\r\n let containsOtherSpecialCharacter = otherSpecialCharacterRegex.test(this.enteredPassword);\r\n \r\n if (!lowerCaseValidate && this.requireLowercaseLetters) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'Password must contain at least one lowercase letter';\r\n this.question.validation = false;\r\n } else if (!upperCaseValidate && this.requireUppercaseLetters) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'Password must contain at least one uppercase letter';\r\n this.question.validation = false;\r\n } else if (!containsNumber && this.requireNumbers) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'Password must contain at least one number';\r\n this.question.validation = false;\r\n }else if (this.enteredPassword.length < this.minLength) {\r\n this.validationFailed = true;\r\n this.validationMessage = `Password must contain at least ${this.minLength} characters`;\r\n this.question.validation = false;\r\n } else if (this.enteredPassword.length > this.maxLength) {\r\n this.validationFailed = true;\r\n this.validationMessage = `Password must be less than ${this.maxLength} characters`;\r\n this.question.validation = false;\r\n } else if (!containsSpecialCharacter && this.allowedSpecialCharacters.length>0) {\r\n this.validationFailed = true;\r\n this.validationMessage = `Password must contain at least one special character from ${this.allowedSpecialCharacters}`;\r\n this.question.validation = false;\r\n } else if(containsOtherSpecialCharacter && this.allowedSpecialCharacters.length>0){\r\n this.validationFailed = true;\r\n this.validationMessage = 'Password contains an invalid special character';\r\n this.question.validation = false;\r\n } else if(this.confirmPassword){\r\n this.checkPasswordMatch();\r\n }\r\n else {\r\n this.question.validation = true;\r\n } \r\n } else { \r\n this.passwordStrength=this.calculateStrength(this.enteredPassword);\r\n this.question.validation = true;\r\n }\r\n this.passwordStrength = this.calculateStrength(this.enteredPassword)\r\n}\r\n\r\n validateInput(event:any){\r\n const sanitizedValue = event.target.value.replace(/\\s+/g, '');\r\n this.enteredPassword = sanitizedValue;\r\n this.question.answer=sanitizedValue;\r\n this.validatePassword(); \r\n }\r\n\r\n validateCnfrm(event:any){\r\n const sanitizedValue = event.target.value.replace(/\\s+/g, '');\r\n this.enteredCnfrmPassword = sanitizedValue;\r\n this.checkPasswordMatch();\r\n }\r\n\r\n calculateStrength(password:any) {\r\n const lengthStrength = Math.min(100, (password.length / 12) * 100); // Assume maximum length of 12 for full points\r\n const lowercaseStrength = /[a-z]/.test(password) ? 20 : 0;\r\n const uppercaseStrength = /[A-Z]/.test(password) ? 20 : 0;\r\n const numberStrength = /\\d/.test(password) ? 20 : 0;\r\n const specialCharacterStrength = /[!@#$%^&*(),.?\":{}|<>]/.test(password) ? 20 : 0; // Adjust this regex based on your allowed special characters\r\n \r\n return lengthStrength + lowercaseStrength + uppercaseStrength + numberStrength + specialCharacterStrength;\r\n }\r\n}\r\n\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"password-input-wrapper mb-2\">\r\n <div class=\"input-wrapper\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label [for]=\"'passwordField'+questionId\">{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <input\r\n type=\"password\"\r\n class=\"form-control mb-2 height\"\r\n [id]=\"'passwordField'+questionId \"\r\n (blur)=\"validatePassword()\"\r\n [(ngModel)]=\"enteredPassword\"\r\n [class.invalid]=\"validationFailed\"\r\n (input)=\"validateInput($event)\"\r\n />\r\n <button\r\n id=\"togglePasswordBtn\"\r\n class=\"toggle-password-btn\"\r\n (click)=\"togglePasswordVisibility()\"\r\n *ngIf=\"viewButton\"\r\n >\r\n <i class=\"bi bi-eye-fill\" [id]=\"'passwordEyeIcon'+questionId\"></i>\r\n </button>\r\n </div>\r\n <div class=\"password-strength-meter\" *ngIf=\"displayStrength\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n role=\"progressbar\"\r\n [style.width]=\"passwordStrength + '%'\"\r\n [class.bg-danger]=\"passwordStrength < 30\"\r\n [class.bg-warning]=\"passwordStrength >= 30 && passwordStrength < 70\"\r\n [class.bg-success]=\"passwordStrength >= 70\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger mb-2\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n\r\n <div class=\"cnfrmPasswordWrapper\" *ngIf=\"confirmPassword\">\r\n <label for=\"'cnfrmPasswordField'+questionId\">Confirm password</label>\r\n <input\r\n type=\"password\"\r\n class=\"form-control mb-2 height\"\r\n [id]=\"'cnfrmPasswordField'+questionId\"\r\n (blur)=\"checkPasswordMatch()\"\r\n [(ngModel)]=\"enteredCnfrmPassword\"\r\n [class.invalid]=\"validatedCnfrmPassword\"\r\n (input)=\"validateCnfrm($event)\"\r\n />\r\n <button\r\n id=\"toggleCnfrmPasswordBtn\"\r\n class=\"toggle-password-btn\"\r\n (click)=\"toggleCnfrmPasswordVisibility()\"\r\n *ngIf=\"viewButton\"\r\n >\r\n <i class=\"bi bi-eye-fill\" [id]=\"'CnfrmPasswordEyeIcon'+questionId\"></i>\r\n </button>\r\n </div>\r\n <div *ngIf=\"validatedCnfrmPassword\" class=\"text-danger\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ cnfrmValidationMessage }}\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormService } from '../../services/form.service';\r\n\r\n@Component({\r\n selector: 'lib-radio-button-fields',\r\n templateUrl: './radio-button-fields.component.html',\r\n styleUrls: ['./radio-button-fields.component.scss'],\r\n})\r\nexport class RadioButtonFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n color: string = '';\r\n minimumSelection: number = 0;\r\n maximumSelection: number = 0;\r\n optionType: string = '';\r\n lookupTable: string = '';\r\n customOptions: any[] = [];\r\n database: any = {};\r\n api: any = {};\r\n apiOptions: any[] = [];\r\n selectedOption: any;\r\n validationFailed!: boolean;\r\n validationMessage: string = '';\r\n\r\n constructor(private formService: FormService) { }\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.color = this.question.formElement.appearance.color;\r\n this.optionType = this.question.formElement.option.optionType;\r\n\r\n switch (this.optionType) {\r\n case 'OPTION':\r\n this.customOptions = this.question.formElement.option.customOptions;\r\n this.initializeOption();\r\n break;\r\n case 'LOOKUP':\r\n this.lookupTable = this.question.formElement.option.lookupTable;\r\n this.fetchDataFromLookup();\r\n break;\r\n case 'DATABASE':\r\n this.database = this.question.formElement.option.database;\r\n this.fetchDataFromDatabase();\r\n break;\r\n case 'API':\r\n this.api = this.question.formElement.option.api;\r\n this.fetchDataFromAPI();\r\n break;\r\n default:\r\n console.warn('Unknown option type:', this.optionType);\r\n }\r\n\r\n if(this.question.childLogics && this.question.answer){\r\n this.updateChildLogics(this.question)\r\n }\r\n }\r\n\r\n initializeOption() {\r\n if (this.question.answer) {\r\n const dataType = typeof this.customOptions[0]?.value;\r\n let convertedAnswer;\r\n\r\n switch (dataType) {\r\n case 'number':\r\n convertedAnswer = Number(this.question.answer);\r\n break;\r\n case 'boolean':\r\n convertedAnswer = (this.question.answer === 'true');\r\n break;\r\n case 'string':\r\n convertedAnswer = String(this.question.answer);\r\n break;\r\n default:\r\n convertedAnswer = this.question.answer;\r\n }\r\n this.selectedOption = convertedAnswer;\r\n }\r\n }\r\n\r\n fetchDataFromLookup() {\r\n this.formService.fetchDataFromLookup(this.lookupTable).subscribe(\r\n (response) => {\r\n this.customOptions = response.result.values.map(\r\n (item: { value: string; label: string }) => ({\r\n value: item.value,\r\n label: item.label,\r\n })\r\n );\r\n this.initializeOption();\r\n },\r\n (error) => {\r\n console.error('HTTP Error:', error);\r\n }\r\n );\r\n }\r\n\r\n fetchDataFromDatabase() {\r\n const transformedDatabase = this.transformDatabaseObject(this.database);\r\n this.formService.fetchDataFromDatabase(transformedDatabase).subscribe(\r\n (response) => {\r\n if (response.success) {\r\n this.customOptions = response.result.map(\r\n (item: { value: string; label: string }) => ({\r\n value: item.value,\r\n label: item.label,\r\n })\r\n );\r\n this.initializeOption();\r\n } else {\r\n console.error('Error fetching data from database:', response.message);\r\n }\r\n },\r\n (error) => {\r\n console.error('HTTP Error:', error);\r\n }\r\n );\r\n }\r\n\r\n transformDatabaseObject(database: any) {\r\n return {\r\n tableName: database.tableName,\r\n valueField: database.valueField,\r\n labelField: database.labelField,\r\n criteria: database.criteria.map((criteria: any) => ({\r\n field: criteria.field,\r\n valueSource:criteria?.valueSource,\r\n condition: criteria.condition,\r\n value: criteria.inputValue,\r\n logicalOperator: criteria.logicalOperator,\r\n })),\r\n };\r\n }\r\n\r\n fetchDataFromAPI() {\r\n const apiConfig = this.api;\r\n this.formService.fetchDataFromExternalAPI(apiConfig).subscribe(\r\n (response) => {\r\n let data;\r\n if(apiConfig.pathToValue) {\r\n data = this.extractDataByPath(response, apiConfig.pathToValue);\r\n } else {\r\n data = response;\r\n }\r\n \r\n this.customOptions = data.map((item: any) => ({\r\n value: item[apiConfig.valueField],\r\n label: item[apiConfig.labelField],\r\n }));\r\n this.initializeOption();\r\n },\r\n (error) => {\r\n console.error('HTTP Error:', error);\r\n }\r\n );\r\n }\r\n\r\n extractDataByPath(data: any, path: string) {\r\n return path.split('.').reduce((acc, part) => acc && acc[part], data);\r\n }\r\n\r\n validateInput() {\r\n this.question.answer = this.selectedOption;\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (this.required && !this.selectedOption) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n if (this.question.childLogics) {\r\n this.updateChildLogics(this.question);\r\n }\r\n }\r\n\r\n updateChildLogics(question: any) {\r\n if (question.childLogics && Array.isArray(question.childLogics)) {\r\n question.childLogics.forEach((childLogic: any) => {\r\n childLogic.showLogic = this.evaluateCondition(this.selectedOption, childLogic.condition, childLogic.inputValue);\r\n });\r\n }\r\n }\r\n\r\n evaluateCondition(answer: any, condition: string, inputValue: any): boolean {\r\n const stringInputValue = Array.isArray(inputValue) ? inputValue.map(val => val.toString()) : inputValue;\r\n\r\n switch (condition) {\r\n case \"!=\":\r\n return answer != stringInputValue;\r\n case \"=\":\r\n return answer == stringInputValue;\r\n case \"IN\":\r\n return stringInputValue.includes(answer);\r\n case \"NOT IN\":\r\n return !(stringInputValue.includes(answer))\r\n default:\r\n return false;\r\n }\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n\r\n <div class=\"checkboxField\" *ngFor=\"let option of customOptions\">\r\n <input\r\n class=\"formCheckbox mb-2\"\r\n type=\"radio\"\r\n [name]=\"question.id\"\r\n [id]=\"option.value\"\r\n [value]=\"option.value\"\r\n [style.accent-color]=\"color\"\r\n (blur)=\"validateInput()\"\r\n [(ngModel)]=\"selectedOption\"\r\n (ngModelChange)=\"validateInput()\"\r\n />\r\n <label\r\n class=\"formCheckLabel ms-2 me-2 mb-2\"\r\n [for]=\"option.value\"\r\n *ngIf=\"optionType == 'OPTION'\"\r\n >{{ option.value }}</label\r\n >\r\n <label\r\n class=\"formCheckLabel ms-2 me-2 mb-2\"\r\n [for]=\"option.value\"\r\n *ngIf=\"optionType == 'LOOKUP' || 'DATABASE' || 'API'\"\r\n >{{ option.label }}</label\r\n >\r\n </div>\r\n\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { AngularEditorConfig } from '@kolkov/angular-editor';\r\n\r\n@Component({\r\n selector: 'lib-rich-text-editor-fields',\r\n templateUrl: './rich-text-editor-fields.component.html',\r\n styleUrls: ['./rich-text-editor-fields.component.scss'],\r\n})\r\nexport class RichTextEditorFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n numberOfRows!: number;\r\n limitedCharacters: boolean = false;\r\n counts: number = 0;\r\n htmlContent: string = '';\r\n characterCount!: number;\r\n validationFailed: boolean = false;\r\n validationMessage: string = '';\r\n\r\n config: AngularEditorConfig = {\r\n editable: true,\r\n spellcheck: true,\r\n height: '15rem',\r\n minHeight: '5rem',\r\n translate: 'no',\r\n defaultParagraphSeparator: 'p',\r\n defaultFontName: 'Arial',\r\n toolbarHiddenButtons: [['bold']],\r\n customClasses: [\r\n {\r\n name: 'quote',\r\n class: 'quote',\r\n },\r\n {\r\n name: 'redText',\r\n class: 'redText',\r\n },\r\n {\r\n name: 'titleText',\r\n class: 'titleText',\r\n tag: 'h1',\r\n },\r\n ],\r\n };\r\n\r\n ngOnInit() {\r\n this.valueAssigned(); \r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.numberOfRows = this.question.formElement.appearance.numberOfRows;\r\n this.limitedCharacters =\r\n this.question.formElement.validation.limitedCharacters;\r\n this.counts = this.question.formElement.validation.count;\r\n this.numberOfRows = this.question.formElement.appearance.numberOfRows;\r\n this.limitedCharacters =\r\n this.question.formElement.validation.limitedCharacters;\r\n if (this.limitedCharacters) {\r\n this.characterCount = this.question.formElement.validation.count;\r\n }\r\n this.htmlContent = this.question?.answer;\r\n }\r\n\r\n validateEditor() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (!this.htmlContent && this.required) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n }\r\n }\r\n\r\n validateInput(event: any) {\r\n if (this.htmlContent.length >= this.characterCount) {\r\n this.htmlContent = this.htmlContent.substring(0, this.characterCount);\r\n }\r\n this.question.answer = this.htmlContent; \r\n }\r\n\r\n updateAnswer(content: string) {\r\n this.question.answer = content;\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <angular-editor\r\n [(ngModel)]=\"htmlContent\"\r\n [config]=\"config\"\r\n (input)=\"validateInput($event)\"\r\n (blur)=\"validateEditor()\"\r\n (ngModelChange)=\"updateAnswer($event)\"\r\n ></angular-editor>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-selection-matrix-fields',\r\n templateUrl: './selection-matrix-fields.component.html',\r\n styleUrls: ['./selection-matrix-fields.component.scss'],\r\n})\r\nexport class SelectionMatrixFieldsComponent {\r\n @Input() question: any = {};\r\n @Input() acceptedLanguage: string ='';\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n selectionMatrixColumn: string[] = [];\r\n selectionMatrixLabel: string[] = [];\r\n selectedOptions: string[] = [];\r\n validationFailed!:boolean;\r\n validationMessage:string='';\r\n minSelectionValue!:number;\r\n\r\n ngOnInit() {\r\n this.valueAssigned(); \r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.selectionMatrixColumn = this.question?.formElement?.selectionMatrixColumn;\r\n this.selectionMatrixLabel = this.question?.formElement?.selectionMatrixLabel;\r\n this.minSelectionValue= this.question?.formElement?.validation?.minSelectionValue;\r\n if(this.question.answer){\r\n this.selectedOptions=this.question.answer;\r\n }\r\n }\r\n\r\n onSelectionChange(rowIndex: number, value: string) {\r\n this.selectedOptions[rowIndex] = value;\r\n this.validateInput();\r\n }\r\n\r\n validateInput() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n this.question.answer=this.selectedOptions;\r\n if(this.required && this.selectedOptions.length==0){\r\n this.validationFailed=true;\r\n this.validationMessage='This is a required question';\r\n this.question.validation = false;\r\n }\r\n else if(this.selectedOptions.length<this.minSelectionValue){\r\n this.validationFailed = true;\r\n this.validationMessage = `selected options must be greater than ${this.minSelectionValue}`;\r\n this.question.validation = false;\r\n }\r\n else{\r\n this.question.validation = true;\r\n } \r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n\r\n <div [ngClass]=\"{ 'labelBorder-rtl': acceptedLanguage === 'ara' }\">\r\n <table class=\"selectionMatrix\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n <th\r\n class=\"text-center table-cell-wrap\"\r\n *ngFor=\"let column of selectionMatrixColumn\"\r\n >\r\n {{ column }}\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody class=\"table-group-divider\">\r\n <tr *ngFor=\"let label of selectionMatrixLabel; let rowIndex = index\">\r\n <td class=\"table-cell-wrap\">{{ label }}</td>\r\n <td\r\n *ngFor=\"let column of selectionMatrixColumn; let colIndex = index\"\r\n class=\"text-center\"\r\n >\r\n <input\r\n type=\"radio\"\r\n id=\"radio-{{ rowIndex }}-{{ colIndex }}\"\r\n name=\"row-{{ rowIndex }}\"\r\n class=\"selectionRadio\"\r\n [value]=\"label + '_' + column\"\r\n [(ngModel)]=\"selectedOptions[rowIndex]\"\r\n (ngModelChange)=\"\r\n onSelectionChange(rowIndex, label + '_' + column)\r\n \"\r\n />\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-signature-fields',\r\n templateUrl: './signature-fields.component.html',\r\n styleUrls: ['./signature-fields.component.scss'],\r\n})\r\nexport class SignatureFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n maxFileSize: number = 0;\r\n minFileSize: number = 0;\r\n\r\n ngOnInit() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.maxFileSize = this.question.formElement.validation.maxFileSize;\r\n this.minFileSize = this.question.formElement.validation.minFileSize;\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\r\n <div class=\"input-wrapper\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, Renderer2, ElementRef, EventEmitter, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-slider-fields',\r\n templateUrl: './slider-fields.component.html',\r\n styleUrls: ['./slider-fields.component.scss'],\r\n})\r\nexport class SliderFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n minValue: number = 0;\r\n maxValue: number = 0;\r\n stepValue: number = 0;\r\n changeSliderColor: boolean = false;\r\n sliderColor: string = '';\r\n validationFailed: boolean = false;\r\n validationMessage: string = '';\r\n\r\n selectedValue: number = 0;\r\n\r\n constructor(private renderer: Renderer2, private el: ElementRef) { }\r\n\r\n ngOnInit() {\r\n\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.minValue = this.question.formElement.appearance.minValue;\r\n this.maxValue = this.question.formElement.appearance.maxValue;\r\n this.stepValue = this.question.formElement.appearance.stepValue;\r\n this.changeSliderColor =\r\n this.question.formElement.appearance.changeSliderColor;\r\n\r\n if (this.changeSliderColor) {\r\n this.sliderColor = this.question.formElement.appearance.sliderColor;\r\n }\r\n\r\n if (this.question.answer && Object.keys(this.question.answer).length>0) {\r\n this.selectedValue = this.question?.answer;\r\n } else {\r\n this.selectedValue = this.minValue;\r\n }\r\n }\r\n\r\n\r\n validateInput(event: any) {\r\n this.question.answer = String(this.selectedValue);\r\n this.question.validation = true;\r\n }\r\n\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"sliderRow\">\r\n <div class=\"sliderLeft\">\r\n <mat-slider\r\n [min]=\"minValue\"\r\n [max]=\"maxValue\"\r\n [step]=\"stepValue\"\r\n [ngStyle]=\"{\r\n '--mdc-slider-active-track-color': changeSliderColor\r\n ? sliderColor\r\n : ''\r\n }\"\r\n >\r\n <input\r\n matSliderThumb\r\n [(ngModel)]=\"selectedValue\"\r\n (input)=\"validateInput($event)\"\r\n />\r\n </mat-slider>\r\n </div>\r\n <div class=\"sliderRight\">\r\n <label class=\"selected-count font-weight-bold\">{{ selectedValue }}</label>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { FormService } from '../../services/form.service';\r\nimport { DataService } from '../../services/data.service';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n@Component({\r\n selector: 'lib-terms-and-condition-fields',\r\n templateUrl: './terms-and-condition-fields.component.html',\r\n styleUrls: ['./terms-and-condition-fields.component.scss'],\r\n})\r\nexport class TermsAndConditionFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n fileDataUrl:any;\r\n private apiUrl: string = '';\r\n imgUrl:any\r\n header: any = {};\r\n visible:boolean=false;\r\n constructor(\r\n private formService: FormService,\r\n private http: HttpClient, \r\n private dataService: DataService\r\n ) {\r\n this.dataService.apiUrl$.subscribe((data) => {\r\n this.apiUrl = data;\r\n });\r\n }\r\n ngOnInit() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.fileDataUrl=this.question.formElement.termsAndConditionType.fileUrl\r\n this.question;\r\n this.count;\r\n }\r\n preview(): Observable<any> {\r\n const headers = new HttpHeaders({\r\n 'Content-Type': this.header.contentType,\r\n 'auth-user': this.header.authUser,\r\n });\r\n const body = {\r\n // Your request body content here\r\n };\r\n const options = {\r\n headers: headers,\r\n body: body,\r\n };\r\n const fileUrl =this.fileDataUrl;\r\n const encodedFileUrl = encodeURIComponent(fileUrl);\r\n const fullUrl = `?url=${encodedFileUrl}`;\r\n this.imgUrl= (this.apiUrl + `/api/cdn/preview${fullUrl}`);\r\n this.visible= true;\r\n return this.http.get<any>(this.apiUrl + `/api/cdn/preview${fullUrl}`, options);\r\n }\r\n closeModal() {\r\n this.visible = false;\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\r\n <div class=\"input-wrapper\">\r\n <div [innerHTML]=\"question.questionNumber\" ></div>\r\n &nbsp;&nbsp; <label (click)=\"preview()\">{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"modal1\" *ngIf=\"visible\">\r\n <div class=\"modal-content1\">\r\n <span class=\"close\" (click)=\"closeModal()\">&times;</span>\r\n <div class=\"imgContiner\">\r\n <img [src]=\"imgUrl\" alt=\"Image\">\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-text-area-fields',\r\n templateUrl: './text-area-fields.component.html',\r\n styleUrls: ['./text-area-fields.component.scss'],\r\n})\r\nexport class TextAreaFieldsComponent {\r\n @Input() question: any = {};\r\n answer: string = '';\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n numberOfRows!: number;\r\n limitedCharacters!: boolean;\r\n characterCount!: number;\r\n validationFailed: boolean = false;\r\n validationMessage: string = '';\r\n enteredText: string = '';\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.numberOfRows = this.question.formElement.appearance.numberOfRows;\r\n this.limitedCharacters =\r\n this.question.formElement.validation.limitedCharacters;\r\n if (this.limitedCharacters) {\r\n this.characterCount = this.question.formElement.validation.count;\r\n }\r\n this.enteredText = this.question?.answer\r\n }\r\n validateInput(event: any) {\r\n this.question.answer = event.target.value;\r\n this.validateTextarea();\r\n }\r\n validateTextarea() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (!this.enteredText && this.required) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <textarea\r\n class=\"form-control mb-2\"\r\n [rows]=\"numberOfRows\"\r\n (input)=\"validateInput($event)\"\r\n (blur)=\"validateTextarea()\"\r\n [(ngModel)]=\"enteredText\"\r\n [class.invalid]=\"validationFailed\"\r\n [maxlength]=\"characterCount\"\r\n ></textarea>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { Logic } from '../../models/logic.model';\r\n\r\n@Component({\r\n selector: 'lib-text-fields',\r\n templateUrl: './text-fields.component.html',\r\n styleUrls: ['./text-fields.component.scss'],\r\n})\r\nexport class TextFieldsComponent {\r\n @Input() question: any = {};\r\n answer: string = '';\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n placeholder: string = '';\r\n defaultValue: string = '';\r\n isBold!: boolean;\r\n isUnderline!: boolean;\r\n isItalics!: boolean;\r\n textAlign: string = '';\r\n font: string = '';\r\n fontSize: string = '';\r\n validationType: string = '';\r\n validation: string = '';\r\n regex: string = '';\r\n enteredText: string = '';\r\n validationFailed: boolean = false;\r\n validationMessage: string = '';\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question?.count;\r\n this.required = this.question?.required;\r\n this.hint = this.question?.hint;\r\n this.placeholder = this.question.formElement?.appearance?.placeholder || '';\r\n this.defaultValue = this.question.formElement.appearance?.defaultValue;\r\n this.enteredText=this.defaultValue;\r\n this.isBold = this.question.formElement.appearance?.bold;\r\n this.isItalics = this.question.formElement.appearance?.italics;\r\n this.isUnderline = this.question.formElement.appearance?.underline;\r\n this.textAlign = this.question.formElement.appearance?.textAlign;\r\n this.font = this.question.formElement.appearance?.font;\r\n this.fontSize = this.question.formElement.appearance?.fontSize;\r\n this.validationType = this.question.formElement.validation?.validationType;\r\n if (this.validationType == 'CUSTOM_VALIDATION') {\r\n this.validation = this.question.formElement.validation?.validation;\r\n } else if (this.validationType == 'REGULAR_EXPRESSION') {\r\n this.regex = this.question.formElement.validation?.regex;\r\n }\r\n\r\n if (\r\n this.question.answer !== null &&\r\n this.question.answer !== undefined &&\r\n ((typeof this.question.answer === 'string' &&\r\n this.question.answer.trim() !== '') ||\r\n (Array.isArray(this.question.answer) &&\r\n this.question.answer.length > 0) ||\r\n (typeof this.question.answer === 'object' &&\r\n Object.keys(this.question.answer).length > 0))\r\n ) {\r\n this.enteredText = this.question.answer;\r\n }\r\n if(this.question.childLogics && this.question.answer){\r\n this.updateChildLogics(this.question)\r\n }\r\n }\r\n\r\n validatetextField() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (this.required && !this.enteredText) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.question.validation = false;\r\n } else {\r\n this.question.validation = true;\r\n }\r\n if (this.question.childLogics) {\r\n this.updateChildLogics(this.question);\r\n } \r\n }\r\n\r\n validateInput(event: any) {\r\n let value = event.target.value;\r\n if (this.validation == 'Numbers only') {\r\n event.target.value = value?.replace(/\\D/g, '');\r\n } else if (this.validation == 'Alphanumeric') {\r\n event.target.value = value?.replace(/[^a-zA-Z0-9]/g, '');\r\n } else if (this.validationType == 'REGULAR_EXPRESSION' && this.regex) {\r\n event.target.value = value?.replace(this.regex, '');\r\n }\r\n this.question.answer = event.target.value;\r\n this.validatetextField();\r\n }\r\n\r\n updateChildLogics(question: any) {\r\n if (question.childLogics && Array.isArray(question.childLogics)) {\r\n question.childLogics.forEach((childLogic: any) => {\r\n if(this.enteredText==''){\r\n childLogic.showLogic=false;\r\n this.clearAnswer(childLogic);\r\n }\r\n if (this.evaluateCondition(this.enteredText, childLogic.condition, childLogic.inputValue)) {\r\n childLogic.showLogic = true;\r\n }\r\n\r\n else{\r\n childLogic.showLogic = false;\r\n this.clearAnswer(childLogic);\r\n }\r\n });\r\n }\r\n }\r\n\r\n evaluateCondition(answer: any, condition: string, inputValue: any): boolean {\r\n const stringInputValue = inputValue;\r\n\r\n switch (condition) {\r\n case '!=':\r\n return answer != inputValue;\r\n case '=':\r\n return answer == inputValue;\r\n case 'LIKE':\r\n return answer.includes(inputValue);\r\n case 'NOT LIKE':\r\n return !answer.includes(inputValue);\r\n case 'BEGIN WITH':\r\n return answer.startsWith(inputValue);\r\n case 'END WITH':\r\n return answer.endsWith(inputValue);\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n clearAnswer(childLogic:Logic){\r\n childLogic.formElements.forEach((formElement:any)=>{\r\n if(formElement.entityType == 'QUESTION'){ \r\n formElement.element.answer = '';\r\n }\r\n })\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div> &nbsp;&nbsp;\r\n <label>{{ question.question }}</label>&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div class=\"svg-wrapper mb-2 hintIcon\" [attr.data-title]=\"hint\" *ngIf=\"hint\">\r\n <svg class=\"hintSvg\" viewBox=\"0 0 30 30\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n \r\n <input\r\n type=\"text\"\r\n class=\"form-control mb-2 height\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"enteredText\"\r\n (blur)=\"validatetextField()\"\r\n (input)=\"validateInput($event)\"\r\n [class.invalid]=\"validationFailed\"\r\n />\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg class=\"validationSvg\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\" fill=\"#FF0000\" stroke=\"#FF0000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\r\n </svg>\r\n {{validationMessage}}</div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-toggle-switch-fields',\r\n templateUrl: './toggle-switch-fields.component.html',\r\n styleUrls: ['./toggle-switch-fields.component.scss'],\r\n})\r\nexport class ToggleSwitchFieldsComponent {\r\n @Input() question: any = {};\r\n @Input() acceptedLanguage: string ='';\r\n\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n labelOnValue: string = '';\r\n labelOffValue: string = '';\r\n labelOnColor: string = '';\r\n labelOffColor: string = '';\r\n toggleBackgroundColor: string = '';\r\n selectedValue : string ='';\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n getDirectionClass(): string {\r\n return this.acceptedLanguage === 'ara' ? 'direction-rtl' : 'direction-ltr';\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.labelOnValue = this.question.formElement.appearance.labelOnValue;\r\n this.labelOffValue = this.question.formElement.appearance.labelOffValue;\r\n this.labelOnColor = this.question.formElement.appearance.labelOnColor;\r\n this.labelOffColor = this.question.formElement.appearance.labelOffColor;\r\n \r\n if (!this.question.answer) {\r\n this.question.answer = this.labelOffValue;\r\n this.question.validation = true;\r\n this.selectedValue=this.labelOffValue;\r\n this.toggleBackgroundColor = this.labelOffColor;\r\n }\r\n if (this.question.answer) {\r\n if(this.question.answer===this.labelOnValue){\r\n this.selectedValue=this.labelOnValue;\r\n this.toggleBackgroundColor = this.labelOnColor;\r\n }\r\n else{\r\n this.selectedValue=this.labelOffValue;\r\n this.toggleBackgroundColor = this.labelOffColor;\r\n }\r\n \r\n this.question.validation = true;\r\n }\r\n }\r\n\r\n toggleSliderColor(event: any): void {\r\n let isChecked = event.target.checked; \r\n this.question.answer = isChecked ?this.labelOnValue:this.labelOffValue;\r\n this.question.validation = true;\r\n this.selectedValue=this.question.answer;\r\n this.toggleBackgroundColor = isChecked\r\n ? this.question.formElement.appearance.labelOnColor\r\n : this.question.formElement.appearance.labelOffColor;\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-3 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"mt-2\">\r\n <label class=\"switch\" [ngClass]=\"{'direction-rtl': acceptedLanguage === 'ara', 'direction-ltr': acceptedLanguage !== 'ara'}\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"togBtn\"\r\n (change)=\"toggleSliderColor($event)\"\r\n [checked]=\"selectedValue === labelOnValue\"\r\n />\r\n <div\r\n class=\"slider round\" [ngClass]=\"getDirectionClass()\"\r\n [ngStyle]=\"{ 'background-color': toggleBackgroundColor }\"\r\n >\r\n <span class=\"on action-btn-text\">{{ labelOnValue }}</span>\r\n <span class=\"off action-btn-text\">{{ labelOffValue }}</span>\r\n </div>\r\n </label>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-url-fields',\r\n templateUrl: './url-fields.component.html',\r\n styleUrls: ['./url-fields.component.scss'],\r\n})\r\nexport class UrlFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n placeholder: string = '';\r\n showPreviewButton!: boolean;\r\n enteredUrl: string = '';\r\n validationFailed: boolean = false;\r\n validationMessage: string = '';\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n handleClick() {\r\n let textFieldValue = (document.getElementById('textField') as HTMLInputElement).value.trim();\r\n\r\n if (!/^https?:\\/\\//i.test(textFieldValue)) {\r\n textFieldValue = 'http://' + textFieldValue;\r\n }\r\n\r\n window.open(textFieldValue, '_blank');\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.placeholder = this.question.formElement.appearance.placeholder;\r\n this.showPreviewButton =\r\n this.question.formElement.appearance.showPreviewButton;\r\n this.enteredUrl = this.question?.answer; \r\n }\r\n validateUrl() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (this.required && !this.enteredUrl) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n }\r\n\r\n validateInput(event: any) {\r\n this.validateUrl();\r\n this.question.answer = event.target.value;\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"input-group\">\r\n <input\r\n id=\"textField\"\r\n type=\"text\"\r\n class=\"form-control col-11.5 rounded height\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"enteredUrl\"\r\n (blur)=\"validateUrl()\"\r\n (input)=\"validateInput($event)\"\r\n [class.invalid]=\"validationFailed\"\r\n />\r\n <div class=\"ps-2 pe-2\">\r\n <button\r\n *ngIf=\"showPreviewButton\"\r\n type=\"button\"\r\n class=\"btn col-.5 custom-button rounded d-flex justify-content-center align-items-center height\"\r\n (click)=\"handleClick()\"\r\n >\r\n <svg\r\n width=\"30\"\r\n height=\"30\"\r\n viewBox=\"0 0 30 30\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M4.99561 16.2503C4.99561 21.7754 9.47462 26.2544 14.9998 26.2544C20.5249 26.2544 25.0039 21.7754 25.0039 16.2503C25.0039 10.7251 20.5249 6.24609 14.9998 6.24609H6.24613\"\r\n stroke=\"#084FFF\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M9.99766 2.49219L6.24609 6.24375\"\r\n stroke=\"#084FFF\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M9.99766 9.99766L6.24609 6.24609\"\r\n stroke=\"#084FFF\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M17.7924 14.8125L14.3035 18.3015L12.2051 16.2106\"\r\n stroke=\"#084FFF\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-section-fields',\r\n templateUrl: './section-fields.component.html',\r\n styleUrls: ['./section-fields.component.scss']\r\n})\r\nexport class SectionFieldsComponent {\r\n @Input() section:any={};\r\n}\r\n","<div class=\"mb-4 px-3\">\r\n <p class=\"sectionTitle\">{{ section.title }}</p>\r\n <p [innerHTML]=\"section.description\" class=\"description\"></p>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-forth-child',\r\n templateUrl: './forth-child.component.html',\r\n styleUrls: ['./forth-child.component.scss']\r\n})\r\nexport class ForthChildComponent {\r\n @Input() childLogics: any = [];\r\n @Input() acceptedLanguage: string ='';\r\n @Input() answer!: string;\r\n}\r\n","<div *ngFor=\"let childLogic of childLogics\">\r\n <div *ngIf=\"childLogic.showLogic && answer\">\r\n <div *ngFor=\"let formElement of childLogic.formElements\">\r\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\r\n <lib-check-box-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'CHECK_BOX'\"\r\n [question]=\"formElement.element\"\r\n ></lib-check-box-fields>\r\n <lib-date-time-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'DATE_TIME'\"\r\n [question]=\"formElement.element\"\r\n ></lib-date-time-fields>\r\n <lib-drop-down-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'DROP_DOWN'\"\r\n [question]=\"formElement.element\"\r\n ></lib-drop-down-fields>\r\n <lib-file-picker-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'FILE_PICKER'\"\r\n [question]=\"formElement.element\"\r\n ></lib-file-picker-fields>\r\n <lib-location-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\r\n [question]=\"formElement.element\"\r\n ></lib-location-fields>\r\n \r\n <lib-mail-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mail-fields>\r\n <lib-mobile-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mobile-fields>\r\n <lib-number-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-number-fields>\r\n <lib-password-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-password-fields>\r\n <lib-radio-button-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'RADIO_BUTTON'\"\r\n [question]=\"formElement.element\"\r\n ></lib-radio-button-fields>\r\n <lib-rich-text-editor-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'RICH_TEXT_EDITOR'\"\r\n [question]=\"formElement.element\"\r\n ></lib-rich-text-editor-fields>\r\n <lib-selection-matrix-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SELECTION_MATRIX'\"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-selection-matrix-fields>\r\n <lib-signature-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SIGNATURE'\"\r\n [question]=\"formElement.element\"\r\n ></lib-signature-fields>\r\n <lib-slider-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\r\n [question]=\"formElement.element\"\r\n ></lib-slider-fields>\r\n <lib-terms-and-condition-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TERMS_AND_CONDITION'\"\r\n [question]=\"formElement.element\"\r\n ></lib-terms-and-condition-fields>\r\n <lib-text-area-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_AREA'\"\r\n [question]=\"formElement.element\"\r\n ></lib-text-area-fields>\r\n <lib-text-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\r\n [question]=\"formElement.element\"\r\n ></lib-text-fields>\r\n <lib-toggle-switch-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-toggle-switch-fields>\r\n <lib-url-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\r\n [question]=\"formElement.element\"\r\n ></lib-url-fields>\r\n </div>\r\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\r\n <lib-section-fields [section]=\"formElement.element\"></lib-section-fields>\r\n </div>\r\n <div *ngIf=\"formElement.entityType === 'SUBFORM'\">\r\n <!-- <lib-sub-form [subForm]=\"formElement.element\"></lib-sub-form> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-third-child',\r\n templateUrl: './third-child.component.html',\r\n styleUrls: ['./third-child.component.scss']\r\n})\r\nexport class ThirdChildComponent {\r\n @Input() childLogics: any = [];\r\n @Input() acceptedLanguage: string ='';\r\n @Input() answer!: string;\r\n}\r\n","<div *ngFor=\"let childLogic of childLogics\">\r\n <div *ngIf=\"childLogic.showLogic && answer\">\r\n <div *ngFor=\"let formElement of childLogic.formElements\">\r\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\r\n <lib-check-box-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'CHECK_BOX'\"\r\n [question]=\"formElement.element\"\r\n ></lib-check-box-fields>\r\n <lib-date-time-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'DATE_TIME'\"\r\n [question]=\"formElement.element\"\r\n ></lib-date-time-fields>\r\n <lib-drop-down-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'DROP_DOWN'\"\r\n [question]=\"formElement.element\"\r\n ></lib-drop-down-fields>\r\n <lib-file-picker-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'FILE_PICKER'\"\r\n [question]=\"formElement.element\"\r\n ></lib-file-picker-fields>\r\n <lib-location-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\r\n [question]=\"formElement.element\"\r\n ></lib-location-fields>\r\n \r\n <lib-mail-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mail-fields>\r\n <lib-mobile-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mobile-fields>\r\n <lib-number-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-number-fields>\r\n <lib-password-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-password-fields>\r\n <lib-radio-button-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'RADIO_BUTTON'\"\r\n [question]=\"formElement.element\"\r\n ></lib-radio-button-fields>\r\n <lib-rich-text-editor-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'RICH_TEXT_EDITOR'\"\r\n [question]=\"formElement.element\"\r\n ></lib-rich-text-editor-fields>\r\n <lib-selection-matrix-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SELECTION_MATRIX'\"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-selection-matrix-fields>\r\n <lib-signature-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SIGNATURE'\"\r\n [question]=\"formElement.element\"\r\n ></lib-signature-fields>\r\n <lib-slider-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\r\n [question]=\"formElement.element\"\r\n ></lib-slider-fields>\r\n <lib-terms-and-condition-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TERMS_AND_CONDITION'\"\r\n [question]=\"formElement.element\"\r\n ></lib-terms-and-condition-fields>\r\n <lib-text-area-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_AREA'\"\r\n [question]=\"formElement.element\"\r\n ></lib-text-area-fields>\r\n <lib-text-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\r\n [question]=\"formElement.element\"\r\n ></lib-text-fields>\r\n <lib-toggle-switch-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-toggle-switch-fields>\r\n <lib-url-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\r\n [question]=\"formElement.element\"\r\n ></lib-url-fields>\r\n <lib-forth-child *ngIf=\"formElement.element.childLogics\"\r\n [childLogics]=\"formElement.element.childLogics\"\r\n [answer]=\"formElement.element.answer\"\r\n [acceptedLanguage] = \"acceptedLanguage\"></lib-forth-child>\r\n </div>\r\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\r\n <lib-section-fields [section]=\"formElement.element\"></lib-section-fields>\r\n </div>\r\n <div *ngIf=\"formElement.entityType === 'SUBFORM'\">\r\n <!-- <lib-sub-form [subForm]=\"formElement.element\"></lib-sub-form> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-second-child',\r\n templateUrl: './second-child.component.html',\r\n styleUrls: ['./second-child.component.scss']\r\n})\r\nexport class SecondChildComponent {\r\n @Input() childLogics: any = [];\r\n @Input() acceptedLanguage: string ='';\r\n @Input() answer!: string;\r\n}\r\n","<div *ngFor=\"let childLogic of childLogics\">\r\n <div *ngIf=\"childLogic.showLogic && answer\">\r\n <div *ngFor=\"let formElement of childLogic.formElements\">\r\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\r\n <lib-check-box-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'CHECK_BOX'\"\r\n [question]=\"formElement.element\"\r\n ></lib-check-box-fields>\r\n <lib-date-time-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'DATE_TIME'\"\r\n [question]=\"formElement.element\"\r\n ></lib-date-time-fields>\r\n <lib-drop-down-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'DROP_DOWN'\"\r\n [question]=\"formElement.element\"\r\n ></lib-drop-down-fields>\r\n <lib-file-picker-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'FILE_PICKER'\"\r\n [question]=\"formElement.element\"\r\n ></lib-file-picker-fields>\r\n <lib-location-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\r\n [question]=\"formElement.element\"\r\n ></lib-location-fields>\r\n \r\n <lib-mail-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mail-fields>\r\n <lib-mobile-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mobile-fields>\r\n <lib-number-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-number-fields>\r\n <lib-password-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-password-fields>\r\n <lib-radio-button-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'RADIO_BUTTON'\"\r\n [question]=\"formElement.element\"\r\n ></lib-radio-button-fields>\r\n <lib-rich-text-editor-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'RICH_TEXT_EDITOR'\"\r\n [question]=\"formElement.element\"\r\n ></lib-rich-text-editor-fields>\r\n <lib-selection-matrix-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SELECTION_MATRIX'\"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-selection-matrix-fields>\r\n <lib-signature-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SIGNATURE'\"\r\n [question]=\"formElement.element\"\r\n ></lib-signature-fields>\r\n <lib-slider-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\r\n [question]=\"formElement.element\"\r\n ></lib-slider-fields>\r\n <lib-terms-and-condition-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TERMS_AND_CONDITION'\"\r\n [question]=\"formElement.element\"\r\n ></lib-terms-and-condition-fields>\r\n <lib-text-area-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_AREA'\"\r\n [question]=\"formElement.element\"\r\n ></lib-text-area-fields>\r\n <lib-text-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\r\n [question]=\"formElement.element\"\r\n ></lib-text-fields>\r\n <lib-toggle-switch-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-toggle-switch-fields>\r\n <lib-url-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\r\n [question]=\"formElement.element\"\r\n ></lib-url-fields>\r\n <lib-third-child *ngIf=\"formElement.element.childLogics\"\r\n [childLogics]=\"formElement.element.childLogics\"\r\n [answer]=\"formElement.element.answer\"\r\n [acceptedLanguage] = \"acceptedLanguage\"></lib-third-child>\r\n </div>\r\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\r\n <lib-section-fields [section]=\"formElement.element\"></lib-section-fields>\r\n </div>\r\n <div *ngIf=\"formElement.entityType === 'SUBFORM'\">\r\n <!-- <lib-sub-form [subForm]=\"formElement.element\"></lib-sub-form> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-first-child',\r\n templateUrl: './first-child.component.html',\r\n styleUrls: ['./first-child.component.scss']\r\n})\r\nexport class FirstChildComponent {\r\n @Input() childLogics: any = [];\r\n @Input() acceptedLanguage: string ='';\r\n @Input() answer!: string;\r\n\r\n ngOnInit() {\r\n }\r\n}\r\n","<div *ngFor=\"let childLogic of childLogics\">\r\n <div *ngIf=\"childLogic.showLogic && answer\">\r\n <div *ngFor=\"let formElement of childLogic.formElements\">\r\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\r\n <lib-check-box-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'CHECK_BOX'\"\r\n [question]=\"formElement.element\"\r\n ></lib-check-box-fields>\r\n <lib-date-time-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'DATE_TIME'\"\r\n [question]=\"formElement.element\"\r\n ></lib-date-time-fields>\r\n <lib-drop-down-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'DROP_DOWN'\"\r\n [question]=\"formElement.element\"\r\n ></lib-drop-down-fields>\r\n <lib-file-picker-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'FILE_PICKER'\"\r\n [question]=\"formElement.element\"\r\n ></lib-file-picker-fields>\r\n <lib-location-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\r\n [question]=\"formElement.element\"\r\n ></lib-location-fields>\r\n \r\n <lib-mail-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mail-fields>\r\n <lib-mobile-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mobile-fields>\r\n <lib-number-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-number-fields>\r\n <lib-password-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-password-fields>\r\n <lib-radio-button-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'RADIO_BUTTON'\"\r\n [question]=\"formElement.element\"\r\n ></lib-radio-button-fields>\r\n <lib-rich-text-editor-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'RICH_TEXT_EDITOR'\"\r\n [question]=\"formElement.element\"\r\n ></lib-rich-text-editor-fields>\r\n <lib-selection-matrix-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SELECTION_MATRIX'\"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-selection-matrix-fields>\r\n <lib-signature-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SIGNATURE'\"\r\n [question]=\"formElement.element\"\r\n ></lib-signature-fields>\r\n <lib-slider-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\r\n [question]=\"formElement.element\"\r\n ></lib-slider-fields>\r\n <lib-terms-and-condition-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TERMS_AND_CONDITION'\"\r\n [question]=\"formElement.element\"\r\n ></lib-terms-and-condition-fields>\r\n <lib-text-area-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_AREA'\"\r\n [question]=\"formElement.element\"\r\n ></lib-text-area-fields>\r\n <lib-text-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\r\n [question]=\"formElement.element\"\r\n ></lib-text-fields>\r\n <lib-toggle-switch-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-toggle-switch-fields>\r\n <lib-url-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\r\n [question]=\"formElement.element\"\r\n ></lib-url-fields>\r\n <lib-second-child *ngIf=\"formElement.element.childLogics\"\r\n [childLogics]=\"formElement.element.childLogics\"\r\n [answer]=\"formElement.element.answer\"\r\n [acceptedLanguage] = \"acceptedLanguage\"></lib-second-child>\r\n </div>\r\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\r\n <lib-section-fields [section]=\"formElement.element\"></lib-section-fields>\r\n </div>\r\n <div *ngIf=\"formElement.entityType === 'SUBFORM'\">\r\n <!-- <lib-sub-form [subForm]=\"formElement.element\"></lib-sub-form> -->\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n \r\n","import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'lib-question',\r\n templateUrl: './question.component.html',\r\n styleUrls: ['./question.component.scss']\r\n})\r\nexport class QuestionComponent {\r\n @Input() question: any = {};\r\n @Input() edit : boolean = false;\r\n @Input() acceptedLanguage: string ='';\r\n\r\n constructor(private cdr: ChangeDetectorRef) { }\r\n\r\n validations: any = [];\r\n @Input() currentPageIndex: number = 0;\r\n @Output() emitValidations = new EventEmitter<any>();\r\n handleValidation(validation: any) {\r\n this.validations.push(validation);\r\n this.emitValidations.emit(this.validations);\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<div>\r\n <lib-check-box-fields\r\n *ngIf=\"question.formElement.elementType === 'CHECK_BOX'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-check-box-fields>\r\n <lib-date-time-fields\r\n *ngIf=\"question.formElement.elementType === 'DATE_TIME'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-date-time-fields>\r\n <lib-drop-down-fields\r\n *ngIf=\"question.formElement.elementType === 'DROP_DOWN'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-drop-down-fields>\r\n <lib-file-picker-fields\r\n *ngIf=\"question.formElement.elementType === 'FILE_PICKER'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-file-picker-fields>\r\n <lib-location-fields\r\n *ngIf=\"question.formElement.elementType === 'LOCATION'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-location-fields>\r\n\r\n <lib-mail-fields\r\n *ngIf=\"question.formElement.elementType === 'EMAIL'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-mail-fields>\r\n <lib-mobile-fields\r\n *ngIf=\"question.formElement.elementType === 'MOBILE'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-mobile-fields>\r\n <lib-number-fields\r\n *ngIf=\"question.formElement.elementType === 'NUMBER'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-number-fields>\r\n <lib-password-fields\r\n *ngIf=\"question.formElement.elementType === 'PASSWORD'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-password-fields>\r\n <lib-radio-button-fields\r\n *ngIf=\"question.formElement.elementType === 'RADIO_BUTTON'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-radio-button-fields>\r\n <lib-rich-text-editor-fields\r\n *ngIf=\"question.formElement.elementType === 'RICH_TEXT_EDITOR'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-rich-text-editor-fields>\r\n <lib-selection-matrix-fields\r\n *ngIf=\"question.formElement.elementType === 'SELECTION_MATRIX'\"\r\n [question]=\"question\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n (validate)=\"handleValidation($event)\"></lib-selection-matrix-fields>\r\n <lib-signature-fields\r\n *ngIf=\"question.formElement.elementType === 'SIGNATURE'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-signature-fields>\r\n <lib-slider-fields\r\n *ngIf=\"question.formElement.elementType === 'SLIDER'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-slider-fields>\r\n <lib-terms-and-condition-fields\r\n *ngIf=\"question.formElement.elementType === 'TERMS_AND_CONDITION'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-terms-and-condition-fields>\r\n <lib-text-area-fields\r\n *ngIf=\"question.formElement.elementType === 'TEXT_AREA'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-text-area-fields>\r\n <lib-text-fields\r\n *ngIf=\"question.formElement.elementType === 'TEXT_BOX'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-text-fields>\r\n <lib-toggle-switch-fields\r\n *ngIf=\"question.formElement.elementType === 'TOGGLE_SWITCH'\"\r\n [question]=\"question\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n (validate)=\"handleValidation($event)\"></lib-toggle-switch-fields>\r\n <lib-url-fields\r\n *ngIf=\"question.formElement.elementType === 'URL'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-url-fields>\r\n <lib-first-child *ngIf=\"question.childLogics\"\r\n [childLogics]=\"question.childLogics\"\r\n [answer]=\"question.answer\"\r\n [acceptedLanguage] = \"acceptedLanguage\">\r\n </lib-first-child>\r\n</div>\r\n","import { Component, Inject, Input } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'lib-submission-modal',\r\n templateUrl: './submission-modal.component.html',\r\n styleUrls: ['./submission-modal.component.scss']\r\n})\r\nexport class SubmissionModalComponent {\r\n acceptedLanguage: string ='';\r\n\r\n subForm:any;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private dialogRef: MatDialogRef<SubmissionModalComponent>\r\n ) { }\r\n\r\n ngOnInit(){\r\n this.subForm = this.data.subForm;\r\n this.acceptedLanguage = this.data.acceptedLanguage;\r\n }\r\n\r\n closeModal() {\r\n this.clearModal();\r\n this.dialogRef.close();\r\n }\r\n\r\n saveSubmission(){\r\n this.dialogRef.close(this.subForm);\r\n }\r\n\r\n clearModal() {\r\n if (this.subForm && this.subForm.formElements) {\r\n this.subForm.formElements.forEach((formElement: any) => {\r\n this.clearFormElement(formElement);\r\n });\r\n }\r\n }\r\n\r\n clearFormElement(formElement: any) {\r\n if (formElement.entityType === 'QUESTION') {\r\n formElement.element.answer = ''; \r\n\r\n // Additional properties to clear if needed\r\n if (formElement.element.formElement) {\r\n if (formElement.element.formElement.elementType === 'FILE_PICKER') {\r\n formElement.element.answer = null; // or [] depending on how you store files\r\n } else {\r\n formElement.element.answer = '';\r\n }\r\n }\r\n\r\n if (formElement.element.childLogics) {\r\n formElement.element.childLogics.forEach((childLogic: any) => {\r\n childLogic.showLogic=false;\r\n childLogic.formElements.forEach((formElement:any)=>{\r\n this.clearFormElement(formElement);\r\n\r\n })\r\n });\r\n }\r\n } \r\n }\r\n}\r\n","<div class=\"mb-5\">\r\n <div class=\"modalHeader mb-4\">\r\n <div class=\"title-div\">\r\n <p class=\"title\">{{subForm.title}}</p>\r\n </div>\r\n <div class=\"header-btn\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" (click)=\"closeModal()\">\r\n <path d=\"M8 8L16 16\" stroke=\"#1D252D\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M16 8L8 16\" stroke=\"#1D252D\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> \r\n </div>\r\n </div>\r\n\r\n <div class=\"px-3\" *ngFor=\"let formElement of subForm.formElements\">\r\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\r\n <lib-check-box-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'CHECK_BOX'\"\r\n [question]=\"formElement.element\"\r\n ></lib-check-box-fields>\r\n <lib-date-time-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'DATE_TIME'\"\r\n [question]=\"formElement.element\"\r\n ></lib-date-time-fields>\r\n <lib-drop-down-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'DROP_DOWN'\"\r\n [question]=\"formElement.element\"\r\n ></lib-drop-down-fields>\r\n <lib-file-picker-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'FILE_PICKER'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-file-picker-fields>\r\n <lib-location-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\r\n [question]=\"formElement.element\"\r\n ></lib-location-fields>\r\n\r\n <lib-mail-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mail-fields>\r\n <lib-mobile-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mobile-fields>\r\n <lib-number-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-number-fields>\r\n <lib-password-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-password-fields>\r\n <lib-radio-button-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'RADIO_BUTTON'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-radio-button-fields>\r\n <lib-rich-text-editor-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'RICH_TEXT_EDITOR'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-rich-text-editor-fields>\r\n <lib-selection-matrix-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'SELECTION_MATRIX'\r\n \"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-selection-matrix-fields>\r\n <lib-signature-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SIGNATURE'\"\r\n [question]=\"formElement.element\"\r\n ></lib-signature-fields>\r\n <lib-slider-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\r\n [question]=\"formElement.element\"\r\n ></lib-slider-fields>\r\n <lib-terms-and-condition-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType ===\r\n 'TERMS_AND_CONDITION'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-terms-and-condition-fields>\r\n <lib-text-area-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_AREA'\"\r\n [question]=\"formElement.element\"\r\n ></lib-text-area-fields>\r\n <lib-text-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\r\n [question]=\"formElement.element\"\r\n ></lib-text-fields>\r\n <lib-toggle-switch-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\r\n \"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-toggle-switch-fields>\r\n <lib-url-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\r\n [question]=\"formElement.element\"\r\n ></lib-url-fields>\r\n <lib-first-child\r\n *ngIf=\"formElement.element.childLogics\"\r\n [childLogics]=\"formElement.element.childLogics\"\r\n ></lib-first-child>\r\n </div>\r\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\r\n <lib-section-fields\r\n [section]=\"formElement.element\"\r\n ></lib-section-fields>\r\n </div>\r\n </div>\r\n\r\n <div class=\"okBtn me-4 ms-4\">\r\n <button\r\n class=\"submitBtn ms-md-3 me-md-2 rounded-pill\"\r\n type=\"button\"\r\n (click)=\"saveSubmission()\">\r\n Ok\r\n </button>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\r\nimport { SubmissionModalComponent } from '../submission-modal/submission-modal.component';\r\nimport { Attachment } from '../../models/attachment.model';\r\n\r\ninterface Answer {\r\n questionId: string;\r\n answer?: any;\r\n answerId?: string;\r\n deleteFiles?: string[];\r\n attachments?: Attachment[];\r\n files?: any;\r\n isChild?: boolean;\r\n}\r\n\r\ninterface Submission {\r\n submissionId: string;\r\n answers: Answer[];\r\n}\r\n\r\n@Component({\r\n selector: 'lib-multiple-subform',\r\n templateUrl: './multiple-subform.component.html',\r\n styleUrls: ['./multiple-subform.component.scss'],\r\n})\r\nexport class MultipleSubformComponent {\r\n @Input() subForm: any = {};\r\n @Output() subFormChange = new EventEmitter<any>();\r\n @Input() acceptedLanguage: string ='';\r\n\r\n submissions: Submission[] = [];\r\n deletedSubmissions: string[] = [];\r\n displayedColumns: string[] = [];\r\n\r\n constructor(public dialog: MatDialog) {}\r\n\r\n ngOnInit() {\r\n if (this.subForm?.submissions) {\r\n this.submissions = this.subForm.submissions;\r\n this.subForm.deletedSubmissions = [];\r\n }\r\n this.initializeDisplayedColumns();\r\n }\r\n\r\n initializeDisplayedColumns() {\r\n this.displayedColumns = this.subForm.formElements.map((fe: any) => fe.element.question);\r\n this.displayedColumns.push('actions');\r\n }\r\n\r\n getAnswerByQuestionId(submission: Submission, questionId: string) {\r\n return submission.answers.find(answer => answer.questionId === questionId);\r\n }\r\n\r\n subFormSubmission(subForm: any) {\r\n const processFormElements = (formElements: any[], isChild: boolean = false): Answer[] => {\r\n const answers: Answer[] = [];\r\n \r\n formElements.forEach((formElement: any) => {\r\n const answer: Answer = {\r\n questionId: formElement.element.id,\r\n answer: formElement.element?.answer || '',\r\n files: formElement.element.formElement.elementType == 'FILE_PICKER' && formElement.element.answer\r\n ? formElement.element.answer\r\n : undefined,\r\n isChild: isChild\r\n };\r\n \r\n if (\r\n formElement.element.formElement.elementType == 'FILE_PICKER' &&\r\n formElement.element.answer\r\n ) {\r\n const fileNames = formElement.element.answer.map(\r\n (file: any) => file?._file.name\r\n );\r\n answer.answer = fileNames;\r\n }\r\n answers.push(answer);\r\n \r\n if (formElement.element.childLogics) {\r\n formElement.element.childLogics.forEach((logic: any) => {\r\n if(logic.showLogic){\r\n answers.push(...processFormElements(logic.formElements, true));\r\n logic.showLogic=false;\r\n }\r\n });\r\n }\r\n\r\n formElement.element.answer = '';\r\n });\r\n return answers;\r\n };\r\n \r\n const answers = processFormElements(subForm.formElements);\r\n \r\n if (answers.length > 0) {\r\n const submission: Submission = {\r\n submissionId: '',\r\n answers: answers,\r\n };\r\n this.submissions.push(submission);\r\n this.submissions = [...this.submissions];\r\n this.updateSubFormWithSubmissions();\r\n }\r\n }\r\n \r\n\r\n editSubFormSubmission(index: number, submission: Submission) {\r\n const subForm = this.bindAnswers(this.subForm, submission);\r\n const dialogConfig = new MatDialogConfig();\r\n dialogConfig.position = { top: '5%' };\r\n dialogConfig.width = '100%';\r\n dialogConfig.data = {\r\n subForm: subForm,\r\n acceptedLanguage: this.acceptedLanguage\r\n };\r\n dialogConfig.hasBackdrop = true;\r\n dialogConfig.disableClose = true;\r\n dialogConfig.maxHeight = '80vh';\r\n const dialogRef = this.dialog.open(SubmissionModalComponent, dialogConfig);\r\n\r\n dialogRef.afterClosed().subscribe((result: any) => {\r\n if (result) {\r\n this.updateSubmission(result, index);\r\n }\r\n });\r\n }\r\n\r\n bindAnswers(subForm: any, submission: Submission): any {\r\n const bindElementAnswers = (formElements: any[], answers: Answer[]) => {\r\n formElements.forEach((formElement: any) => {\r\n const answer = answers.find(\r\n (a) => a.questionId === formElement.element.id\r\n );\r\n if (answer) {\r\n formElement.element.answer =\r\n formElement.element.formElement.elementType == 'FILE_PICKER'\r\n ? answer?.files\r\n : answer.answer;\r\n formElement.element.answerId = answer.answerId;\r\n formElement.element.attachments = answer.attachments;\r\n }\r\n if (formElement.element.childLogics) {\r\n formElement.element.childLogics.forEach((logic: any) => {\r\n bindElementAnswers(logic.formElements, answers);\r\n });\r\n }\r\n });\r\n };\r\n\r\n const updatedSubForm = { ...subForm };\r\n bindElementAnswers(updatedSubForm.formElements, submission.answers);\r\n return updatedSubForm;\r\n }\r\n\r\n deleteSubForm(index: number) {\r\n const submission = this.submissions[index];\r\n if (submission.submissionId) {\r\n this.deletedSubmissions.push(submission.submissionId);\r\n }\r\n this.submissions.splice(index, 1);\r\n this.submissions = [...this.submissions];\r\n this.updateSubFormWithSubmissions();\r\n }\r\n\r\n addNewSubmission() {\r\n const dialogConfig = new MatDialogConfig();\r\n dialogConfig.position = { top: '5%' };\r\n dialogConfig.width = '100%';\r\n dialogConfig.data = {\r\n subForm: this.subForm,\r\n acceptedLanguage: this.acceptedLanguage\r\n };\r\n dialogConfig.hasBackdrop = true;\r\n dialogConfig.disableClose = true;\r\n dialogConfig.maxHeight = '80vh';\r\n const dialogRef = this.dialog.open(SubmissionModalComponent, dialogConfig);\r\n \r\n dialogRef.afterClosed().subscribe((result: any) => {\r\n if (result) {\r\n const hasData = result.formElements.some((formElement: any) => {\r\n return formElement.element.answer && formElement.element.answer.length > 0;\r\n });\r\n \r\n if (hasData) {\r\n this.subForm = result;\r\n this.subFormSubmission(result);\r\n }\r\n }\r\n });\r\n }\r\n \r\n\r\n updateSubmission(result: any, index: number) {\r\n const processFormElements = (formElements: any[], answers: Answer[]) => {\r\n formElements.forEach((formElement: any) => {\r\n let answer: Answer = {\r\n questionId: formElement.element.id,\r\n answerId: formElement.element?.answerId || '',\r\n attachments: formElement.element.attachments || [],\r\n answer: [],\r\n files: [],\r\n deleteFiles: [],\r\n };\r\n \r\n if (answer.attachments) {\r\n answer.answer = answer.attachments.map(\r\n (attachment: Attachment) => attachment.fileName\r\n );\r\n }\r\n \r\n if (formElement.element.formElement.elementType === 'FILE_PICKER') {\r\n if (formElement.element?.deleteFiles) {\r\n answer.answer = [];\r\n formElement.element.deleteFiles.forEach((deletedId: string) => {\r\n answer.deleteFiles?.push(deletedId);\r\n if (answer.attachments) {\r\n answer.attachments = answer.attachments.filter(\r\n (attachment: Attachment) => {\r\n const fileName = attachment.fileName;\r\n if (attachment.fileId !== deletedId) {\r\n if (!answer.answer.includes(fileName)) {\r\n answer.answer.push(fileName);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n );\r\n }\r\n });\r\n }\r\n if (formElement.element.answer) {\r\n answer.files = formElement.element.answer;\r\n formElement.element.answer.forEach((file: any) => {\r\n const fileName = file._file?.name;\r\n let fileNamesArray = Array.isArray(answer.answer)\r\n ? answer.answer\r\n : [];\r\n if (!fileNamesArray.includes(fileName)) {\r\n fileNamesArray.push(fileName);\r\n }\r\n answer.answer = fileNamesArray;\r\n });\r\n }\r\n } else {\r\n answer = {\r\n questionId: formElement.element.id,\r\n answerId: formElement.element?.answerId || '',\r\n attachments: formElement.element.attachments,\r\n answer: formElement.element.answer,\r\n };\r\n }\r\n //formElement.element.answer = '';\r\n answers.push(answer);\r\n \r\n if (formElement.element.childLogics) {\r\n formElement.element.childLogics.forEach((logic: any) => {\r\n if(logic.showLogic){\r\n processFormElements(logic.formElements, answers);\r\n }\r\n });\r\n }\r\n });\r\n };\r\n \r\n this.submissions[index].answers = [];\r\n processFormElements(result.formElements, this.submissions[index].answers);\r\n this.submissions = [...this.submissions];\r\n this.updateSubFormWithSubmissions();\r\n this.clearEmptyRows();\r\n } \r\n\r\n updateSubFormWithSubmissions() {\r\n this.subForm.submissions = this.submissions;\r\n this.subForm.deletedSubmissions = this.deletedSubmissions;\r\n this.subFormChange.emit(this.subForm);\r\n }\r\n\r\n clearEmptyRows() {\r\n const nonEmptySubmissions:Submission[] = [];\r\n const emptySubmissionIds:string[] = [];\r\n \r\n this.submissions.forEach(submission => {\r\n if (submission.answers.some(answer => answer.answer !== '')) {\r\n nonEmptySubmissions.push(submission);\r\n } else if (submission.submissionId) {\r\n emptySubmissionIds.push(submission.submissionId);\r\n }\r\n });\r\n \r\n this.submissions = nonEmptySubmissions;\r\n this.deletedSubmissions.push(...emptySubmissionIds);\r\n this.updateSubFormWithSubmissions();\r\n }\r\n \r\n}\r\n","<div class=\"example-container \" tabindex=\"0\">\r\n <div class=\"table-container\">\r\n <table mat-table [dataSource]=\"submissions\" class=\"mat-elevation-z8\">\r\n <ng-container *ngFor=\"let formElement of subForm.formElements\" [matColumnDef]=\"formElement.element.question\">\r\n <th mat-header-cell *matHeaderCellDef class=\"border border-1\">{{ formElement.element.question }}</th>\r\n <td mat-cell *matCellDef=\"let submission\" class=\"border border-1\" [ngClass]=\"{'hidden': getAnswerByQuestionId(submission, formElement.element.id)?.isChild}\">\r\n {{ getAnswerByQuestionId(submission, formElement.element.id)?.answer }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"actions\" stickyEnd>\r\n <th mat-header-cell *matHeaderCellDef class=\"border border-1\"> Actions </th>\r\n <td mat-cell *matCellDef=\"let submission; let i = index\" class=\"text-center border border-1\">\r\n\r\n <div>\r\n <button class=\"btn\" mat-icon-button [matMenuTriggerFor]=\"menu\" aria-label=\"Example icon-button with a menu\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button mat-menu-item (click)=\"editSubFormSubmission(i, submission)\">\r\n <svg width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" y=\"0.5\" width=\"28\" height=\"26.4737\" rx=\"5.5\" fill=\"white\" stroke=\"#D8D8D8\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.0009 19.0787H9.1582V16.2361C9.1582 15.9447 9.2739 15.6653 9.47999 15.4593L16.2224 8.71686C16.4284 8.5105 16.708 8.39453 16.9995 8.39453C17.2911 8.39453 17.5707 8.5105 17.7767 8.71686L19.5201 10.4603C19.7264 10.6663 19.8424 10.9458 19.8424 11.2374C19.8424 11.529 19.7264 11.8086 19.5201 12.0145L12.7777 18.757C12.5715 18.9628 12.2922 19.0785 12.0009 19.0787Z\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15.1704 10.3984L17.8415 13.0695\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </button>\r\n <button mat-menu-item (click)=\"deleteSubForm(i)\">\r\n <svg width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" y=\"0.5\" width=\"27.6402\" height=\"26.1328\" rx=\"5.5\" fill=\"white\" stroke=\"#D8D8D8\"/>\r\n <path d=\"M8.60449 9.20637H20.0354\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M19.2189 9.20703V17.7863C19.2189 18.6482 18.4881 19.3462 17.5859 19.3462H11.0539C10.1517 19.3462 9.4209 18.6482 9.4209 17.7863V9.20703\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M16.7696 6.67122H11.8706\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M12.6871 12.3242V16.2239\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15.9532 12.3242V16.2239\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n </table>\r\n </div>\r\n <div class=\"footer\">\r\n <div class=\"addNewBtn\" (click)=\"addNewSubmission()\">\r\n <svg width=\"15\" height=\"14\" viewBox=\"0 0 15 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.5556 13.2778H2.44444C1.64639 13.2778 1 12.6673 1 11.9136V2.3642C1 1.61048 1.64639 1 2.44444 1H12.5556C13.3536 1 14 1.61048 14 2.3642V11.9136C14 12.6673 13.3536 13.2778 12.5556 13.2778Z\" stroke=\"#D8D8D8\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M5.3335 7.50347H9.66683\" stroke=\"#084FFF\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M7.50005 5.33594V9.66927\" stroke=\"#084FFF\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <a class=\"ms-2 text-decoration-none\">Add New</a>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-sub-form',\r\n templateUrl: './sub-form.component.html',\r\n styleUrls: ['./sub-form.component.scss'],\r\n})\r\nexport class SubFormComponent implements OnInit {\r\n @Input() subForm: any = {};\r\n @Input() edit: boolean = false;\r\n @Output() subFormChange = new EventEmitter<any>();\r\n @Input() acceptedLanguage: string ='';\r\n\r\n\r\n ngOnInit() {\r\n if (this.subForm.subFormStructure == 'single') {\r\n this.bindAnswersToFormElements();\r\n }\r\n }\r\n\r\n bindAnswersToFormElements() {\r\n const bindAnswers = (formElements: any[], submissions: any[]) => {\r\n formElements.forEach((formElement: { entityType: string; element: any }) => {\r\n if (formElement.entityType === 'QUESTION') {\r\n const submission = submissions.find((sub: { answers: any[] }) =>\r\n sub.answers.some((ans: { questionId: any }) => ans.questionId === formElement.element.id)\r\n );\r\n\r\n if (submission) {\r\n const answer = submission.answers.find((ans: { questionId: any }) => ans.questionId === formElement.element.id);\r\n if (answer) {\r\n formElement.element.answer = answer.answer;\r\n formElement.element.answerId = answer.answerId;\r\n formElement.element.validation = true;\r\n formElement.element.attachments = answer.attachments;\r\n this.subForm.submissionId = submission.submissionId;\r\n }\r\n }\r\n\r\n if (formElement.element.childLogics) {\r\n formElement.element.childLogics.forEach((childLogic: { formElements: any[] }) => {\r\n bindAnswers(childLogic.formElements, submissions);\r\n });\r\n }\r\n }\r\n });\r\n };\r\n\r\n if (this.subForm && this.subForm.formElements && this.subForm.submissions) {\r\n bindAnswers(this.subForm.formElements, this.subForm.submissions);\r\n }\r\n }\r\n\r\n\r\n updateSubFormWithSubmissions(event: any) {\r\n this.subForm = event;\r\n this.subFormChange.emit(this.subForm);\r\n }\r\n}\r\n","<div class=\"outer-container mb-4 px-3\">\r\n <div class=\"body container pt-3 pb-3 px-3\">\r\n <div class=\"tab-content pt-4 pb-3 px-3\">\r\n <p class=\"sectionTitle\">{{ subForm.title }}</p>\r\n <p [innerHTML]=\"subForm.description\" class=\"description mb-5\"></p>\r\n\r\n <div *ngIf=\"subForm.subFormStructure == 'multiple'\">\r\n <lib-multiple-subform\r\n [subForm]=\"subForm\"\r\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\r\n [acceptedLanguage]=\"acceptedLanguage\"\r\n ></lib-multiple-subform>\r\n </div>\r\n <div *ngIf=\"subForm.subFormStructure == 'single'\">\r\n <div *ngFor=\"let formElement of subForm.formElements\">\r\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\r\n <lib-check-box-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'CHECK_BOX'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-check-box-fields>\r\n <lib-date-time-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'DATE_TIME'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-date-time-fields>\r\n <lib-drop-down-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'DROP_DOWN'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-drop-down-fields>\r\n <lib-file-picker-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'FILE_PICKER'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-file-picker-fields>\r\n <lib-location-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\r\n [question]=\"formElement.element\"\r\n ></lib-location-fields>\r\n\r\n <lib-mail-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mail-fields>\r\n <lib-mobile-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mobile-fields>\r\n <lib-number-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-number-fields>\r\n <lib-password-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-password-fields>\r\n <lib-radio-button-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'RADIO_BUTTON'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-radio-button-fields>\r\n <lib-rich-text-editor-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType ===\r\n 'RICH_TEXT_EDITOR'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-rich-text-editor-fields>\r\n <lib-selection-matrix-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType ===\r\n 'SELECTION_MATRIX'\r\n \"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-selection-matrix-fields>\r\n <lib-signature-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'SIGNATURE'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-signature-fields>\r\n <lib-slider-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\r\n [question]=\"formElement.element\"\r\n ></lib-slider-fields>\r\n <lib-terms-and-condition-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType ===\r\n 'TERMS_AND_CONDITION'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-terms-and-condition-fields>\r\n <lib-text-area-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'TEXT_AREA'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-text-area-fields>\r\n <lib-text-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\r\n [question]=\"formElement.element\"\r\n ></lib-text-fields>\r\n <lib-toggle-switch-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\r\n \"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage]=\"acceptedLanguage\"\r\n ></lib-toggle-switch-fields>\r\n <lib-url-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\r\n [question]=\"formElement.element\"\r\n ></lib-url-fields>\r\n <lib-first-child\r\n *ngIf=\"formElement.element.childLogics\"\r\n [childLogics]=\"formElement.element.childLogics\"\r\n ></lib-first-child>\r\n </div>\r\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\r\n <lib-section-fields\r\n [section]=\"formElement.element\"\r\n ></lib-section-fields>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-form-elements',\r\n templateUrl: './form-elements.component.html',\r\n styleUrls: ['./form-elements.component.scss'],\r\n})\r\nexport class FormElementsComponent {\r\n @Input() grid: any = {};\r\n @Input() currentPageIndex: number = 0;\r\n @Input() edit : boolean = false;\r\n @Input() acceptedLanguage: string ='';\r\n @Output() subFormChange = new EventEmitter<any>();\r\n\r\n\r\n updateSubFormWithSubmissions(event:any){\r\n this.subFormChange.emit(event);\r\n }\r\n}\r\n","<div *ngIf=\"grid.entityType === 'QUESTION'\">\r\n <lib-question [question]=\"grid?.element\"\r\n [currentPageIndex]=\"currentPageIndex\"\r\n [edit]=\"edit\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-question>\r\n</div>\r\n<div *ngIf=\"grid.entityType === 'SECTION'\">\r\n <lib-section-fields [section]=\"grid.element\"></lib-section-fields>\r\n</div>\r\n<div *ngIf=\"grid.entityType === 'SUBFORM'\">\r\n <lib-sub-form [subForm]=\"grid.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\r\n ></lib-sub-form>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-navigation-tabs',\r\n templateUrl: './navigation-tabs.component.html',\r\n styleUrls: ['./navigation-tabs.component.scss'],\r\n})\r\nexport class NavigationTabsComponent {\r\n @Input() pages: any[] = [];\r\n @Input() currentPageIndex: number = 0;\r\n @Output() pageChanged = new EventEmitter<number>();\r\n @Output() submitEmit: EventEmitter<any> = new EventEmitter<any>();\r\n @Input() edit : boolean = false;\r\n @Input() acceptedLanguage: string ='';\r\n @Output() subFormChange = new EventEmitter<any>();\r\n\r\n ngOnInit() {\r\n }\r\n\r\n updateSubFormWithSubmissions(event:any){\r\n this.subFormChange.emit(event);\r\n }\r\n\r\n\r\n setCurrentPage(index: number) {\r\n this.pageChanged.emit(index);\r\n }\r\n\r\n submitForm() {\r\n this.submitEmit.emit();\r\n }\r\n}\r\n","<div class=\"tab-inner-container\">\r\n <ul class=\"nav nav-tabs navTabs\" id=\"myTab\" role=\"tablist\">\r\n <li\r\n class=\"nav-item\"\r\n role=\"presentation\"\r\n *ngFor=\"let page of pages; let i = index\"\r\n [ngClass]=\"{'nav-item-ara': acceptedLanguage === 'ara', 'nav-item-default': acceptedLanguage !== 'ara'}\"\r\n >\r\n <button\r\n class=\"nav-link\"\r\n [title]=\"page.title\"\r\n data-bs-toggle=\"tooltip\" data-bs-placement=\"top\"\r\n data-bs-custom-class=\"custom-tooltip\"\r\n data-bs-title=\"This top tooltip is themed via CSS variables.\"\r\n [class.active]=\"i === currentPageIndex\"\r\n id=\"tab-{{ i }}\"\r\n [attr.data-bs-toggle]=\"'tab'\"\r\n [attr.data-bs-target]=\"'#content-' + i\"\r\n type=\"button\"\r\n role=\"tab\"\r\n [attr.aria-controls]=\"'content-' + i\"\r\n [attr.aria-selected]=\"i === 0\"\r\n (click)=\"setCurrentPage(i)\"\r\n >\r\n {{ page.title }}\r\n </button>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content pt-5 pb-3 px-1\">\r\n <div\r\n *ngFor=\"let page of pages; let i = index\"\r\n class=\"tab-pane fade\"\r\n [class.show]=\"i === 0\"\r\n [class.active]=\"i === 0\"\r\n id=\"content-{{ i }}\"\r\n role=\"tabpanel\"\r\n [attr.aria-labelledby]=\"'tab-' + i\"\r\n >\r\n <div *ngFor=\"let row of page.rows\">\r\n <div class=\"margin\">\r\n <div *ngFor=\"let grid of row.grid\">\r\n <lib-form-elements\r\n [grid]=\"grid\"\r\n [edit]=\"edit\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\r\n ></lib-form-elements>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"currentPageIndex == pages.length - 1\"\r\n class=\"footerButton d-flex justify-content-end me-4 ms-4\"\r\n >\r\n <button\r\n class=\"btn btn-primary rounded-pill\"\r\n type=\"button\"\r\n (click)=\"submitForm()\"\r\n >\r\n Submit\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-next-prev-navigation',\r\n templateUrl: './next-prev-navigation.component.html',\r\n styleUrls: ['./next-prev-navigation.component.scss']\r\n})\r\nexport class NextPrevNavigationComponent {\r\n\r\n @Input() currentPageIndex: number = 0;\r\n @Input() pages: any[] = [];\r\n @Input() previousPage: any = {};\r\n @Input() nextPage: any = {};\r\n @Input() currentPage: any = {};\r\n @Output() navigateNext = new EventEmitter<void>();\r\n @Output() navigatePrevious = new EventEmitter<void>();\r\n @Output() submitEmit: EventEmitter<any> = new EventEmitter<any>();\r\n @Input() edit: boolean = false;\r\n @Input() acceptedLanguage: string ='';\r\n @Output() subFormChange = new EventEmitter<any>();\r\n\r\n\r\n updateSubFormWithSubmissions(event: any) {\r\n this.subFormChange.emit(event);\r\n }\r\n\r\n onNavigateNext() {\r\n this.navigateNext.emit();\r\n }\r\n\r\n onNavigatePrevious() {\r\n this.navigatePrevious.emit();\r\n }\r\n\r\n submitForm() {\r\n this.submitEmit.emit();\r\n }\r\n}\r\n","<div class=\"pageTitleDiv\">\r\n <p class=\"pageTitle\">{{ currentPage.title }}</p>\r\n</div>\r\n<div class=\"button-inner-container rounded\">\r\n <div class=\"tab-content pt-5 pb-3 row\">\r\n <div *ngFor=\"let row of pages[currentPageIndex].rows\" class=\"marginSize\">\r\n <div *ngFor=\"let grid of row.grid\">\r\n <lib-form-elements\r\n [grid]=\"grid\"\r\n [currentPageIndex]=\"currentPageIndex\"\r\n [edit]=\"edit\"\r\n [acceptedLanguage]=\"acceptedLanguage\"\r\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\r\n ></lib-form-elements>\r\n </div>\r\n </div>\r\n <div class=\"footerButton\">\r\n <div\r\n class=\"prevButtonDiv\"\r\n [ngClass]=\"{ 'prevDirection-rtl': acceptedLanguage === 'ara' }\">\r\n <button\r\n class=\"me-md-2 rounded-pill navButton\"\r\n type=\"button\"\r\n (click)=\"onNavigatePrevious()\"\r\n *ngIf=\"0 < currentPageIndex\"\r\n >\r\n <ng-container *ngIf=\"acceptedLanguage === 'ara'; else defaultSvg\">\r\n <svg\r\n width=\"24\"\r\n height=\"24\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M19.4897 12.0117L4.49975 12.0117\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M13.486 6.02344L19.502 12.0004L13.486 17.9774\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </ng-container>\r\n <ng-template #defaultSvg>\r\n <svg\r\n width=\"24\"\r\n height=\"24\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M4.51025 11.9883L19.5003 11.9883\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M10.514 17.9766L4.49805 11.9996L10.514 6.02256\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </ng-template>\r\n Previous | {{ previousPage.title }}\r\n </button>\r\n </div>\r\n <div\r\n class=\"nextButtonDiv\"\r\n [ngClass]=\"{ 'nextDirection-rtl': acceptedLanguage === 'ara' }\"\r\n >\r\n <button\r\n class=\"md-2 rounded-pill navButton\"\r\n type=\"button\"\r\n (click)=\"onNavigateNext()\"\r\n *ngIf=\"currentPageIndex < pages.length - 1\"\r\n >\r\n Next | {{ nextPage.title }}\r\n <ng-container *ngIf=\"acceptedLanguage === 'ara'; else defaultSvg\">\r\n <svg\r\n width=\"24\"\r\n height=\"24\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M4.51025 11.9883L19.5003 11.9883\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M10.514 17.9766L4.49805 11.9996L10.514 6.02256\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </ng-container>\r\n <ng-template #defaultSvg>\r\n <svg\r\n width=\"24\"\r\n height=\"24\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M19.4897 12.0117L4.49975 12.0117\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M13.486 6.02344L19.502 12.0004L13.486 17.9774\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </ng-template>\r\n </button>\r\n <button\r\n class=\"submitBtn ms-md-2 me-md-2 rounded-pill\"\r\n type=\"button\"\r\n *ngIf=\"currentPageIndex == pages.length - 1\"\r\n (click)=\"submitForm()\"\r\n >\r\n Submit\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-submission-container',\r\n templateUrl: './submission-container.component.html',\r\n styleUrls: ['./submission-container.component.scss']\r\n})\r\nexport class SubmissionContainerComponent {\r\n @Input() parentQuestionAnswers:any;\r\n\r\n isImageUrl(url: string): boolean {\r\n return url.match(/\\.(jpeg|jpg|gif|png)$/) != null;\r\n }\r\n}\r\n","<div class=\"subModule\">\r\n <div class=\"submission-container\">\r\n <div *ngFor=\"let qa of parentQuestionAnswers\" class=\"submission-item\">\r\n <div class=\"key\">{{ qa.question }}</div>\r\n <div class=\"value\">\r\n <ng-container *ngIf=\"qa.elementType === 'FILE_PICKER'; else text\">\r\n <div class=\"files\" *ngFor=\"let attachment of qa.attachments\">\r\n <ng-container *ngIf=\"isImageUrl(attachment.fileName); else fileLink\">\r\n <img [src]=\"attachment.fileUrl\" alt=\"{{ attachment.fileName }}\" class=\"image\">\r\n </ng-container>\r\n <ng-template #fileLink>\r\n <p>{{ attachment.fileName }}</p>\r\n <a class=\"fileName\" [href]=\"attachment.fileUrl\" target=\"_blank\">\r\n <i class=\"bi bi-file-earmark\"></i>\r\n </a>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n <ng-template #text>\r\n <ng-container [ngSwitch]=\"qa.elementType\">\r\n <p *ngSwitchCase=\"'RICH_TEXT_EDITOR'\" [innerHTML]=\"qa.values\"></p>\r\n <p *ngSwitchCase=\"'DROP_DOWN'\">{{ qa.values.join(', ') }}</p>\r\n <p *ngSwitchCase=\"'SELECTION_MATRIX'\">{{ qa.values.join(', ') }}</p>\r\n <p *ngSwitchDefault>{{ qa.values }}</p>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n </div>","import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { FormService } from '../../services/form.service';\r\nimport * as mapper from '../../services/mapper.service';\r\nimport { PublicForm } from '../../models/publicForm.model';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Router } from '@angular/router';\r\nimport { DataService } from '../../services/data.service';\r\n\r\ninterface Answer {\r\n questionId: string;\r\n answer: any;\r\n answerId?: string;\r\n deleteFiles?: string[];\r\n}\r\n\r\ninterface Submission {\r\n submissionId: string;\r\n answers: Answer[];\r\n}\r\n\r\ninterface Form {\r\n formId: string;\r\n deletedSubmissions: any[];\r\n submissions: Submission[];\r\n}\r\n\r\ninterface QuestionAnswersWrapper {\r\n parentId:string;\r\n answers: Answer[];\r\n forms: Form[];\r\n}\r\n\r\n@Component({\r\n selector: 'lib-submit-form',\r\n templateUrl: './submit-form.component.html',\r\n styleUrls: ['./submit-form.component.scss'],\r\n})\r\nexport class SubmitFormComponent implements OnInit {\r\n question: PublicForm | null = null;\r\n @Input() moduleName: string = '';\r\n @Input() edit: boolean = false;\r\n @Input() submissionId: string = '';\r\n @Input() acceptedLanguage: string ='';\r\n @Output() submit: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n name: string = '';\r\n saveAutomatically: boolean = false;\r\n saveInterval: number = 0;\r\n customizeFont: boolean = false;\r\n fontFamily: string = '';\r\n fontSize: number = 0;\r\n enableDataExport: boolean = false;\r\n fileFormats: string[] = [];\r\n enableQuestionNumbering: boolean = false;\r\n questionNumbering: string = '';\r\n enableGoogleRecaptcha: boolean = false;\r\n googleRecaptchaKey: string = '';\r\n googleRecaptchaSecret: string = '';\r\n navigation: string = 'TAB';\r\n markAllQuestionsAsRequired: boolean = false;\r\n pages: any = [];\r\n currentPageIndex: number = 0;\r\n previousPage: any = {};\r\n currentPage: any = {};\r\n nextPage: any = {};\r\n lastTab: boolean = false;\r\n questionAnswers: QuestionAnswersWrapper = { parentId:'',answers: [], forms: [] };\r\n files: { questionId: string; file: any }[] = [];\r\n parentQuestions:any;\r\n submission:any={};\r\n parentQuestionAnswers:any;\r\n parentSubmissionId:string='';\r\n submissionInProgress:boolean=false;\r\n\r\n constructor(\r\n private formService: FormService,\r\n private toastr: ToastrService,\r\n private router: Router,\r\n private dataService: DataService\r\n ) {\r\n const navigation = this.router.getCurrentNavigation();\r\n this.submission= navigation?.extras.state?.['submission'] \r\n this.parentSubmissionId=this.submission?.id;\r\n this.parentQuestionAnswers=this.submission?.questionAnswers\r\n this.parentQuestions=navigation?.extras.state?.['parentQuestions'];\r\n this.dataService.setParentQuestions(this.parentQuestions);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['acceptedLanguage']) {\r\n this.currentPageIndex = 0;\r\n this.acceptedLanguage = changes['acceptedLanguage'].currentValue;\r\n this.getFormData();\r\n }\r\n }\r\n \r\n ngOnInit() {\r\n if (this.edit && this.submissionId) {\r\n this.getSubmittedFormData();\r\n } else {\r\n this.getFormData();\r\n }\r\n }\r\n\r\n getFormData() {\r\n this.formService.getQuestions(this.moduleName).subscribe((response) => {\r\n this.question = mapper.mapPublicFormToModel(response);\r\n this.assignQuestionProperties(this.question);\r\n });\r\n }\r\n\r\n getSubmittedFormData() {\r\n this.formService\r\n .getSubmittedForm(this.moduleName, this.submissionId)\r\n .subscribe((response) => {\r\n this.question = mapper.mapPublicFormToModel(response);\r\n this.assignQuestionProperties(this.question);\r\n });\r\n }\r\n\r\n assignQuestionProperties(question: PublicForm) {\r\n this.name = question.name;\r\n this.pages = question.pages;\r\n if(this.parentQuestions){\r\n this.parentQuestionAnswers=question?.questionAnswers;\r\n this.parentSubmissionId=question?.parentId;\r\n }\r\n this.currentPage = this.pages[0];\r\n this.nextPage = this.pages[1];\r\n }\r\n\r\n navigateToNextPage() {\r\n if (this.currentPageIndex < this.pages.length - 1) {\r\n if (this.markAllQuestionsAsRequired) {\r\n const currentPageData = this.pages[this.currentPageIndex];\r\n const validationResponse =\r\n this.validateRequiredQuestions(currentPageData);\r\n if (validationResponse.isValid) {\r\n this.previousPage = this.currentPage;\r\n this.currentPageIndex++;\r\n this.currentPage = this.pages[this.currentPageIndex];\r\n this.nextPage = this.pages[this.currentPageIndex + 1];\r\n } else {\r\n this.toastr.warning(validationResponse.message);\r\n }\r\n } else {\r\n this.previousPage = this.currentPage;\r\n this.currentPageIndex++;\r\n this.currentPage = this.pages[this.currentPageIndex];\r\n this.nextPage = this.pages[this.currentPageIndex + 1];\r\n }\r\n }\r\n }\r\n\r\n navigateToPreviousPage() {\r\n if (this.currentPageIndex > 0) {\r\n if (this.markAllQuestionsAsRequired) {\r\n const currentPageData = this.pages[this.currentPageIndex];\r\n const validationResponse =\r\n this.validateRequiredQuestions(currentPageData);\r\n if (validationResponse.isValid) {\r\n this.nextPage = this.currentPage;\r\n this.currentPageIndex--;\r\n this.currentPage = this.pages[this.currentPageIndex];\r\n this.previousPage = this.pages[this.currentPageIndex - 1];\r\n } else {\r\n this.toastr.warning(validationResponse.message);\r\n }\r\n } else {\r\n this.nextPage = this.currentPage;\r\n this.currentPageIndex--;\r\n this.currentPage = this.pages[this.currentPageIndex];\r\n this.previousPage = this.pages[this.currentPageIndex - 1];\r\n }\r\n }\r\n }\r\n\r\n setCurrentPage(index: number) {\r\n if (this.markAllQuestionsAsRequired) {\r\n const currentPageData = this.pages[this.currentPageIndex];\r\n const validationResponse =\r\n this.validateRequiredQuestions(currentPageData);\r\n if (validationResponse.isValid) {\r\n this.currentPageIndex = index;\r\n } else {\r\n this.toastr.warning(validationResponse.message);\r\n }\r\n } else {\r\n this.currentPageIndex = index;\r\n }\r\n }\r\n\r\n generateQuestionAnswers() {\r\n this.files = [];\r\n\r\n const extractQuestions = (\r\n formElements: any[],\r\n parentFormId: string | null = null,\r\n isInSubForm: boolean = false,\r\n subFormIndex: number = 0\r\n ): { answers: Answer[]; forms: Form[] } => {\r\n const questions: Answer[] = [];\r\n const forms: Form[] = [];\r\n\r\n formElements.forEach((element) => {\r\n if (element.entityType === 'QUESTION') {\r\n let baseQuestion: any;\r\n if (element.element.formElement.elementType === 'FILE_PICKER') {\r\n baseQuestion = {\r\n questionId: element.element.id,\r\n answer: '',\r\n };\r\n if (Array.isArray(element.element.answer)) {\r\n const questionId = isInSubForm\r\n ? `${parentFormId}_${subFormIndex}_${element.element.id}`\r\n : element.element.id;\r\n this.files.push({\r\n questionId: questionId,\r\n file: element.element.answer,\r\n });\r\n }\r\n } else {\r\n baseQuestion = {\r\n questionId: element.element.id,\r\n answer: element.element.answer,\r\n };\r\n }\r\n if (this.edit) {\r\n questions.push({\r\n ...baseQuestion,\r\n answerId: element.element.answerId || '',\r\n deleteFiles: element.element.deleteFiles || [],\r\n });\r\n } else {\r\n questions.push(baseQuestion);\r\n }\r\n\r\n if (element.element.childLogics) {\r\n for (let logic of element.element.childLogics) {\r\n if (logic.showLogic) {\r\n const result = extractQuestions(\r\n logic.formElements,\r\n parentFormId,\r\n isInSubForm,\r\n subFormIndex\r\n );\r\n questions.push(...result.answers);\r\n forms.push(...result.forms);\r\n }\r\n }\r\n }\r\n } else if (element.entityType === 'SUBFORM') {\r\n const subformId = element.element.id;\r\n const submissionId = element.element.submissionId;\r\n\r\n if (element.element.subFormStructure === 'single') {\r\n const subformQuestions = extractQuestions(\r\n element.element.formElements,\r\n subformId,\r\n true,\r\n forms.length\r\n );\r\n const subform: Form = {\r\n formId: subformId,\r\n deletedSubmissions: [],\r\n submissions: [\r\n {\r\n submissionId: submissionId,\r\n answers: subformQuestions.answers,\r\n },\r\n ],\r\n };\r\n forms.push(subform);\r\n } else if (element.element.subFormStructure === 'multiple') {\r\n const subformAnswers: Answer[] = [];\r\n const subformQuestions = extractQuestions(\r\n element.element.formElements,\r\n subformId,\r\n true,\r\n forms.length\r\n );\r\n const existingSubform = forms.find(\r\n (form) => form.formId === subformId\r\n );\r\n\r\n element.element?.submissions.forEach(\r\n (submission: any, index: number) => {\r\n submission.answers.forEach((answer: any) => {\r\n if (Array.isArray(answer.files)) {\r\n const questionId = `${subformId}_${index}_${answer.questionId}`;\r\n this.files.push({\r\n questionId: questionId,\r\n file: answer.files,\r\n });\r\n delete answer.files;\r\n }\r\n delete answer.attachments;\r\n });\r\n }\r\n );\r\n\r\n const subform: Form = {\r\n formId: subformId,\r\n deletedSubmissions: element.element.deletedSubmissions,\r\n submissions: element.element.submissions,\r\n };\r\n forms.push(subform);\r\n }\r\n }\r\n });\r\n return { answers: questions, forms: forms };\r\n };\r\n\r\n const processPages = (\r\n pages: any[]\r\n ): { answers: Answer[]; forms: Form[] } => {\r\n const questions: Answer[] = [];\r\n const forms: Form[] = [];\r\n\r\n pages.forEach((page) => {\r\n page.rows.forEach((row: any) => {\r\n const result = extractQuestions(row.grid);\r\n questions.push(...result.answers);\r\n forms.push(...result.forms);\r\n });\r\n });\r\n\r\n return { answers: questions, forms: forms };\r\n };\r\n\r\n const result = processPages(this.pages);\r\n\r\n this.questionAnswers = {\r\n parentId:'',\r\n answers: result.answers,\r\n forms: result.forms,\r\n };\r\n }\r\n\r\n submitForm() {\r\n if (this.submissionInProgress) {\r\n return;\r\n }\r\n \r\n this.submissionInProgress = true;\r\n \r\n let validationResponse = this.validateForm(this.pages);\r\n this.generateQuestionAnswers();\r\n if (validationResponse.isValid) {\r\n const formData = new FormData(); \r\n this.questionAnswers.parentId=this.parentSubmissionId;\r\n formData.append('json', JSON.stringify(this.questionAnswers));\r\n if (this.files.length > 0) {\r\n this.files.forEach((fileItem) => {\r\n fileItem.file.forEach((file: any) => {\r\n formData.append(fileItem.questionId, file._file);\r\n });\r\n });\r\n }\r\n const formServiceCall = this.edit && this.submissionId\r\n ? this.formService.updateForm(this.moduleName, this.submissionId, formData)\r\n : this.formService.submitForm(this.moduleName, formData);\r\n\r\n formServiceCall.subscribe({\r\n next:(response) => {\r\n this.toastr.success(this.edit ? 'Form updated successfully' : 'Form submitted successfully');\r\n this.submit.emit('success');\r\n this.submissionInProgress = false;\r\n },\r\n error:(error) => {\r\n this.toastr.error(error.error.message);\r\n this.submissionInProgress = false;\r\n }\r\n });\r\n } else {\r\n this.toastr.error(validationResponse.message);\r\n this.submissionInProgress = false;\r\n }\r\n }\r\n\r\n validateForm(jsonData: any): {\r\n isValid: boolean;\r\n message: string;\r\n pageIndex: number | 0;\r\n } {\r\n const validateQuestions = (\r\n formElements: any[]\r\n ): { isValid: boolean; message: string; pageIndex: number | 0 } => {\r\n for (let element of formElements) {\r\n if (element.entityType === 'QUESTION') {\r\n const required = element.element.required;\r\n const answer = element.element.answer;\r\n const validation = element.element.validation;\r\n if (element.element.formElement.elementType === 'FILE_PICKER') {\r\n const attachment = element.element.attachments;\r\n if (required) {\r\n if ((!answer || answer.length === 0) && attachment.length == 0) {\r\n return {\r\n isValid: false,\r\n message: `Form is invalid - Required file question ${element.element.questionNumber} has no files uploaded.`,\r\n pageIndex: 0,\r\n };\r\n }\r\n }\r\n } else {\r\n if (required) {\r\n if (!answer || Object.keys(answer).length === 0) {\r\n return {\r\n isValid: false,\r\n message: `Form is invalid - Question ${element.element.questionNumber} is required but no answer provided.`,\r\n pageIndex: 0,\r\n };\r\n } else if (!validation) {\r\n return {\r\n isValid: false,\r\n message: `Form is invalid - Question ${element.element.questionNumber} is required but validation is false.`,\r\n pageIndex: 0,\r\n };\r\n }\r\n } else if (!required && answer && Object.keys(answer).length > 0) {\r\n if (!validation) {\r\n return {\r\n isValid: false,\r\n message: `Form is invalid - Question ${element.element.questionNumber} is not required but answer provided with validation false.`,\r\n pageIndex: 0,\r\n };\r\n }\r\n }\r\n }\r\n if (element.element.childLogics) {\r\n for (let logic of element.element.childLogics) {\r\n if (logic.showLogic) {\r\n const result = validateQuestions(logic.formElements);\r\n if (!result.isValid) return result;\r\n }\r\n }\r\n }\r\n } else if (element.entityType === 'SUBFORM') {\r\n if (element.element.formElements) {\r\n const result = validateQuestions(element.element.formElements);\r\n if (!result.isValid) return result;\r\n }\r\n }\r\n }\r\n return { isValid: true, message: '', pageIndex: 0 };\r\n };\r\n\r\n for (let pageIndex = 0; pageIndex < jsonData.length; pageIndex++) {\r\n const page = jsonData[pageIndex];\r\n for (let row of page.rows) {\r\n const result = validateQuestions(row.grid);\r\n if (!result.isValid) {\r\n return {\r\n isValid: false,\r\n message: `Page ${pageIndex + 1}: ${result.message}`,\r\n pageIndex: pageIndex,\r\n };\r\n }\r\n }\r\n }\r\n return {\r\n isValid: true,\r\n message: 'Form is valid.',\r\n pageIndex: 0,\r\n };\r\n }\r\n\r\n validateRequiredQuestions(page: any): { isValid: boolean; message: string } {\r\n const validateQuestions = (\r\n formElements: any[]\r\n ): { isValid: boolean; message: string } => {\r\n for (let element of formElements) {\r\n if (element.entityType === 'QUESTION') {\r\n const required = element.element.required;\r\n const answer = element.element.answer;\r\n if (element.element.formElement.elementType === 'FILE_PICKER') {\r\n if (required) {\r\n if (!answer || answer.length === 0) {\r\n return {\r\n isValid: false,\r\n message: `Required file question ${element.element.questionNumber} is not answered.`,\r\n };\r\n }\r\n }\r\n } else {\r\n if (required) {\r\n if (!answer || Object.keys(answer).length === 0) {\r\n return {\r\n isValid: false,\r\n message: `Required question ${element.element.questionNumber} is not answered.`,\r\n };\r\n }\r\n }\r\n }\r\n if (element.element.childLogics) {\r\n for (let logic of element.element.childLogics) {\r\n if (logic.showLogic) {\r\n const result = validateQuestions(logic.formElements);\r\n if (!result.isValid) return result;\r\n }\r\n }\r\n }\r\n } else if (element.entityType === 'SUBFORM') {\r\n if (element.element.formElements) {\r\n const result = validateQuestions(element.element.formElements);\r\n if (!result.isValid) return result;\r\n }\r\n }\r\n }\r\n return { isValid: true, message: 'All required questions are answered.' };\r\n };\r\n\r\n for (let row of page.rows) {\r\n const result = validateQuestions(row.grid);\r\n if (!result.isValid) {\r\n return result;\r\n }\r\n }\r\n return { isValid: true, message: 'All required questions are answered.' };\r\n }\r\n\r\n updateSubFormWithSubmissions(event: any) {\r\n this.updateSubForm(this.pages, event);\r\n }\r\n\r\n updateSubForm = (pages: any[], updatedSubForm: any) => {\r\n pages.forEach((page) => {\r\n page.rows.forEach((row: any) => {\r\n row.grid.forEach((element: any) => {\r\n if (\r\n element.entityType === 'SUBFORM' &&\r\n element.element.id === updatedSubForm.formId\r\n ) {\r\n // Update the existing subform with the new data\r\n element.element = updatedSubForm;\r\n } else if (\r\n element.entityType === 'SUBFORM' &&\r\n element.element.id !== updatedSubForm.formId\r\n ) {\r\n // Handle multiple subforms logic here if needed\r\n } else if (\r\n element.entityType === 'QUESTION' &&\r\n element.element.childLogics\r\n ) {\r\n // Recursively update child logics\r\n element.element.childLogics.forEach((logic: any) => {\r\n if (logic.showLogic) {\r\n this.updateSubForm(logic.formElements, updatedSubForm);\r\n }\r\n });\r\n }\r\n });\r\n });\r\n });\r\n };\r\n}\r\n","<div class=\"outer-container\">\r\n \r\n \r\n <div class=\"head container\">\r\n <lib-header [name]=\"name\"></lib-header>\r\n </div>\r\n <div class=\"body container\">\r\n \r\n <lib-submission-container [parentQuestionAnswers]=\"parentQuestionAnswers\"\r\n *ngIf=\"parentQuestionAnswers\"></lib-submission-container>\r\n \r\n <lib-navigation-tabs\r\n *ngIf=\"navigation == 'TAB'\"\r\n [pages]=\"pages\"\r\n [currentPageIndex]=\"currentPageIndex\"\r\n (pageChanged)=\"setCurrentPage($event)\"\r\n (submitEmit)=\"submitForm()\"\r\n [edit]=\"edit\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\r\n ></lib-navigation-tabs>\r\n <lib-next-prev-navigation\r\n *ngIf=\"navigation == 'NEXT_AND_PREVIOUS_BUTTON'\"\r\n [currentPageIndex]=\"currentPageIndex\"\r\n [pages]=\"pages\"\r\n [previousPage]=\"previousPage\"\r\n [currentPage]=\"currentPage\"\r\n [nextPage]=\"nextPage\"\r\n (navigateNext)=\"navigateToNextPage()\"\r\n (navigatePrevious)=\"navigateToPreviousPage()\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n (submitEmit)=\"submitForm()\"\r\n [edit]=\"edit\"\r\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\r\n ></lib-next-prev-navigation>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Inject, Input, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { DataService } from '../services/data.service';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { environment } from '../environment/environment';\r\n\r\n\r\n@Component({\r\n selector: 'lib-formSubmission',\r\n templateUrl: './form-submission.component.html',\r\n styleUrls: ['./form-submission.component.scss'],\r\n})\r\n\r\nexport class FormSubmissionComponent implements OnInit {\r\n @Input() formData: any = {};\r\n @Input() edit: boolean = false;\r\n @Input() submissionId: string = '';\r\n @Output() submitForm: EventEmitter<string> = new EventEmitter<string>();\r\n header:any;\r\n acceptedLanguage!: string;\r\n\r\n constructor(private dataService: DataService, @Inject(DOCUMENT) private document: Document) { }\r\n \r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['formData']) {\r\n this.dataService.setHeader(changes['formData'].currentValue?.headers);\r\n \r\n }\r\n }\r\n \r\n ngOnInit() {\r\n this.dataService.setApiUrl(this.formData.apiurl);\r\n this.dataService.setHeader(this.formData.headers);\r\n\r\n this.dataService.header$.subscribe((data) => {\r\n this.header = data;\r\n this.setHtmlDirection(this.header.acceptedLanguage);\r\n });\r\n }\r\n\r\n setHtmlDirection(language: string) {\r\n const htmlTag = this.document.getElementsByTagName('html')[0] as HTMLHtmlElement;\r\n\r\n if (language === 'ara' || language === 'ar') {\r\n environment.htmlDirection = 'rtl';\r\n } else {\r\n environment.htmlDirection = 'ltr';\r\n }\r\n\r\n htmlTag.dir = environment.htmlDirection; \r\n }\r\n\r\n submit(event: any) {\r\n this.submitForm.emit(event);\r\n }\r\n}\r\n","<lib-submit-form\r\n [moduleName]=\"formData.moduleName\"\r\n [submissionId]=\"submissionId\"\r\n [edit]=\"edit\"\r\n [acceptedLanguage] = \"formData.headers.acceptedLanguage\"\r\n (submit)=\"submit($event)\"\r\n></lib-submit-form>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CheckBoxFieldsComponent } from './check-box-fields/check-box-fields.component';\r\nimport { DateTimeFieldsComponent } from './date-time-fields/date-time-fields.component';\r\nimport { DropDownFieldsComponent } from './drop-down-fields/drop-down-fields.component';\r\nimport { FilePickerFieldsComponent } from './file-picker-fields/file-picker-fields.component';\r\nimport { LocationFieldsComponent } from './location-fields/location-fields.component';\r\nimport { RadioButtonFieldsComponent } from './radio-button-fields/radio-button-fields.component';\r\nimport { RichTextEditorFieldsComponent } from './rich-text-editor-fields/rich-text-editor-fields.component';\r\nimport { SelectionMatrixFieldsComponent } from './selection-matrix-fields/selection-matrix-fields.component';\r\nimport { SignatureFieldsComponent } from './signature-fields/signature-fields.component';\r\nimport { SliderFieldsComponent } from './slider-fields/slider-fields.component';\r\nimport { TermsAndConditionFieldsComponent } from './terms-and-condition-fields/terms-and-condition-fields.component';\r\nimport { TextAreaFieldsComponent } from './text-area-fields/text-area-fields.component';\r\nimport { TextFieldsComponent } from './text-fields/text-fields.component';\r\nimport { ToggleSwitchFieldsComponent } from './toggle-switch-fields/toggle-switch-fields.component';\r\nimport { UrlFieldsComponent } from './url-fields/url-fields.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MailFieldsComponent } from './mail-fields/mail-fields.component';\r\nimport { MobileFieldsComponent } from './mobile-fields/mobile-fields.component';\r\nimport { NumberFieldsComponent } from './number-fields/number-fields.component';\r\nimport { PasswordFieldsComponent } from './password-fields/password-fields.component';\r\nimport {MatSliderModule} from \"@angular/material/slider\";\r\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\n\r\n\r\nimport { GoogleMapsModule } from '@angular/google-maps';\r\nimport { DropdownModule } from '@piserve-tech/drop-down';\r\nimport { FilePreviewModule } from '@piserve-tech/file-preview';\r\nimport { SectionFieldsComponent } from './section-fields/section-fields.component';\r\nimport { DocUploadModule } from '@piserve-tech/file-upload';\r\nimport { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';\r\n\r\n\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n CheckBoxFieldsComponent,\r\n DateTimeFieldsComponent,\r\n DropDownFieldsComponent,\r\n FilePickerFieldsComponent,\r\n LocationFieldsComponent,\r\n RadioButtonFieldsComponent,\r\n RichTextEditorFieldsComponent,\r\n SelectionMatrixFieldsComponent,\r\n SignatureFieldsComponent,\r\n SliderFieldsComponent,\r\n TermsAndConditionFieldsComponent,\r\n TextAreaFieldsComponent,\r\n TextFieldsComponent,\r\n ToggleSwitchFieldsComponent,\r\n UrlFieldsComponent,\r\n MailFieldsComponent,\r\n MobileFieldsComponent,\r\n NumberFieldsComponent,\r\n PasswordFieldsComponent,\r\n SectionFieldsComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n MatSliderModule,\r\n BsDatepickerModule.forRoot(),\r\n DropdownModule,\r\n AngularEditorModule,\r\n DocUploadModule,\r\n GoogleMapsModule,\r\n FilePreviewModule,\r\n NgxMaterialTimepickerModule\r\n ],\r\n exports: [\r\n CheckBoxFieldsComponent,\r\n DateTimeFieldsComponent,\r\n DropDownFieldsComponent,\r\n FilePickerFieldsComponent,\r\n LocationFieldsComponent,\r\n MailFieldsComponent,\r\n MobileFieldsComponent,\r\n NumberFieldsComponent,\r\n PasswordFieldsComponent,\r\n RadioButtonFieldsComponent,\r\n RichTextEditorFieldsComponent,\r\n SelectionMatrixFieldsComponent,\r\n SignatureFieldsComponent,\r\n SliderFieldsComponent,\r\n TermsAndConditionFieldsComponent,\r\n TextAreaFieldsComponent,\r\n TextFieldsComponent,\r\n ToggleSwitchFieldsComponent,\r\n UrlFieldsComponent,\r\n SectionFieldsComponent\r\n\r\n ]\r\n})\r\nexport class FormFieldsModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FirstChildComponent } from './first-child/first-child.component';\r\nimport { SecondChildComponent } from './second-child/second-child.component';\r\nimport { ThirdChildComponent } from './third-child/third-child.component';\r\nimport { ForthChildComponent } from './forth-child/forth-child.component';\r\nimport { FormFieldsModule } from '../form-fields/form-fields.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [ FirstChildComponent, SecondChildComponent, ThirdChildComponent, ForthChildComponent],\r\n imports: [\r\n CommonModule,\r\n FormFieldsModule,\r\n ],\r\n exports:[FirstChildComponent, SecondChildComponent, ThirdChildComponent, ForthChildComponent]\r\n})\r\nexport class LogicModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { QuestionComponent } from './question/question.component';\r\nimport { LogicModule } from '../logic/logic.module';\r\nimport { FormFieldsModule } from '../form-fields/form-fields.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [QuestionComponent],\r\n imports: [\r\n CommonModule,\r\n LogicModule,\r\n FormFieldsModule,\r\n ],\r\n exports:[QuestionComponent]\r\n})\r\nexport class QuestionModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SubFormComponent } from './sub-form/sub-form.component';\r\nimport { FormFieldsModule } from '../form-fields/form-fields.module';\r\nimport { LogicModule } from '../logic/logic.module';\r\nimport { MultipleSubformComponent } from './multiple-subform/multiple-subform.component';\r\nimport { SubmissionModalComponent } from './submission-modal/submission-modal.component';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport {MatMenuModule} from '@angular/material/menu';\r\nimport {MatIconModule} from '@angular/material/icon';\r\n\r\n@NgModule({\r\n declarations: [SubFormComponent, MultipleSubformComponent, SubmissionModalComponent],\r\n imports: [\r\n CommonModule,\r\n FormFieldsModule,\r\n LogicModule,\r\n MatDialogModule,\r\n MatTableModule,\r\n MatMenuModule,\r\n MatIconModule\r\n ],\r\n exports:[SubFormComponent]\r\n})\r\nexport class SubFormModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormElementsComponent } from './form-elements/form-elements.component';\r\nimport { QuestionModule } from '../question/question.module';\r\nimport { FormFieldsModule } from '../form-fields/form-fields.module';\r\nimport { SubFormModule } from '../sub-form/sub-form.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [ FormElementsComponent],\r\n imports: [\r\n CommonModule,\r\n QuestionModule,\r\n FormFieldsModule,\r\n SubFormModule\r\n ],\r\n exports: [\r\n FormElementsComponent\r\n ]\r\n})\r\nexport class ElementTypeModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SubmitFormComponent } from './submit-form/submit-form.component';\r\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\r\nimport { HeaderComponent } from './header/header.component';\r\nimport { NavigationTabsComponent } from './navigation-tabs/navigation-tabs.component';\r\nimport { NextPrevNavigationComponent } from './next-prev-navigation/next-prev-navigation.component';\r\nimport { ElementTypeModule } from '../element-type/element-type.module';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { SubmissionContainerComponent } from './submission-container/submission-container.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n SubmitFormComponent,\r\n HeaderComponent,\r\n NavigationTabsComponent,\r\n NextPrevNavigationComponent,\r\n SubmissionContainerComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n BsDatepickerModule.forRoot(),\r\n ElementTypeModule,\r\n ToastrModule\r\n ],\r\n exports: [SubmitFormComponent, NextPrevNavigationComponent]\r\n})\r\nexport class FormSubmitModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { FormSubmissionComponent } from './form-submission.component';\r\n// import { DropdownModule } from '@piserve-tech/drop-down';\r\nimport { FilePreviewModule } from '@piserve-tech/file-preview';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { FormFieldsModule } from '../form-fields/form-fields.module';\r\nimport { FormSubmitModule } from '../form-submission/form-submission.module';\r\nimport { DropdownModule } from '@piserve-tech/drop-down';\r\nimport { ElementTypeModule } from '../element-type/element-type.module';\r\nimport { LogicModule } from '../logic/logic.module';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { DocUploadModule } from '@piserve-tech/file-upload';\r\n\r\n@NgModule({\r\n declarations: [FormSubmissionComponent],\r\n imports: [\r\n DropdownModule,\r\n FilePreviewModule,\r\n DocUploadModule,\r\n FormsModule,\r\n MatTabsModule,\r\n FormFieldsModule,\r\n FormSubmitModule,\r\n ElementTypeModule,\r\n LogicModule,\r\n ToastrModule.forRoot({\r\n positionClass: 'toast-bottom-left',\r\n }),\r\n ],\r\n exports: [FormSubmissionComponent],\r\n})\r\nexport class FormSubmissionModule {}\r\n","/*\r\n * Public API Surface of form-submission\r\n */\r\n\r\nexport * from './lib/form-submission.service';\r\nexport * from './lib/form-submission.component';\r\nexport * from './lib/form-submission.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.DataService","i1.FormService","i2","i1","i3","i1.CountryService","i4","i3.DataService","i2.CheckBoxFieldsComponent","i3.DateTimeFieldsComponent","i4.DropDownFieldsComponent","i5.FilePickerFieldsComponent","i6.LocationFieldsComponent","i7.MailFieldsComponent","i8.MobileFieldsComponent","i9.NumberFieldsComponent","i10.PasswordFieldsComponent","i11.RadioButtonFieldsComponent","i12.RichTextEditorFieldsComponent","i13.SelectionMatrixFieldsComponent","i14.SignatureFieldsComponent","i15.SliderFieldsComponent","i16.TermsAndConditionFieldsComponent","i17.TextAreaFieldsComponent","i18.TextFieldsComponent","i19.ToggleSwitchFieldsComponent","i20.UrlFieldsComponent","i21.SectionFieldsComponent","i22.ForthChildComponent","i22.ThirdChildComponent","i22.SecondChildComponent","i2.FirstChildComponent","i3.CheckBoxFieldsComponent","i4.DateTimeFieldsComponent","i5.DropDownFieldsComponent","i6.FilePickerFieldsComponent","i7.LocationFieldsComponent","i8.MailFieldsComponent","i9.MobileFieldsComponent","i10.NumberFieldsComponent","i11.PasswordFieldsComponent","i12.RadioButtonFieldsComponent","i13.RichTextEditorFieldsComponent","i14.SelectionMatrixFieldsComponent","i15.SignatureFieldsComponent","i16.SliderFieldsComponent","i17.TermsAndConditionFieldsComponent","i18.TextAreaFieldsComponent","i19.TextFieldsComponent","i20.ToggleSwitchFieldsComponent","i21.UrlFieldsComponent","i22.SectionFieldsComponent","i23.FirstChildComponent","i22.FirstChildComponent","i23.MultipleSubformComponent","i2.QuestionComponent","i3.SectionFieldsComponent","i4.SubFormComponent","i2.FormElementsComponent","mapper.mapPublicFormToModel","i4.DataService","i5","i6.HeaderComponent","i7.NavigationTabsComponent","i8.NextPrevNavigationComponent","i9.SubmissionContainerComponent","i2.SubmitFormComponent"],"mappings":"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"}
1
+ {"version":3,"file":"piserve-tech-form-submission.mjs","sources":["../../../projects/form-submission/src/lib/form-submission.service.ts","../../../projects/form-submission/src/environment/environment.ts","../../../projects/form-submission/src/services/data.service.ts","../../../projects/form-submission/src/services/mapper.service.ts","../../../projects/form-submission/src/services/form.service.ts","../../../projects/form-submission/src/form-submission/header/header.component.ts","../../../projects/form-submission/src/form-submission/header/header.component.html","../../../projects/form-submission/src/form-fields/check-box-fields/check-box-fields.component.ts","../../../projects/form-submission/src/form-fields/check-box-fields/check-box-fields.component.html","../../../projects/form-submission/src/form-fields/date-time-fields/date-time-fields.component.ts","../../../projects/form-submission/src/form-fields/date-time-fields/date-time-fields.component.html","../../../projects/form-submission/src/form-fields/drop-down-fields/drop-down-fields.component.ts","../../../projects/form-submission/src/form-fields/drop-down-fields/drop-down-fields.component.html","../../../projects/form-submission/src/form-fields/file-picker-fields/file-picker-fields.component.ts","../../../projects/form-submission/src/form-fields/file-picker-fields/file-picker-fields.component.html","../../../projects/form-submission/src/form-fields/location-fields/location-fields.component.ts","../../../projects/form-submission/src/form-fields/location-fields/location-fields.component.html","../../../projects/form-submission/src/form-fields/mail-fields/mail-fields.component.ts","../../../projects/form-submission/src/form-fields/mail-fields/mail-fields.component.html","../../../projects/form-submission/src/services/countryService.ts","../../../projects/form-submission/src/form-fields/mobile-fields/mobile-fields.component.ts","../../../projects/form-submission/src/form-fields/mobile-fields/mobile-fields.component.html","../../../projects/form-submission/src/form-fields/number-fields/number-fields.component.ts","../../../projects/form-submission/src/form-fields/number-fields/number-fields.component.html","../../../projects/form-submission/src/form-fields/password-fields/password-fields.component.ts","../../../projects/form-submission/src/form-fields/password-fields/password-fields.component.html","../../../projects/form-submission/src/form-fields/radio-button-fields/radio-button-fields.component.ts","../../../projects/form-submission/src/form-fields/radio-button-fields/radio-button-fields.component.html","../../../projects/form-submission/src/form-fields/rich-text-editor-fields/rich-text-editor-fields.component.ts","../../../projects/form-submission/src/form-fields/rich-text-editor-fields/rich-text-editor-fields.component.html","../../../projects/form-submission/src/form-fields/selection-matrix-fields/selection-matrix-fields.component.ts","../../../projects/form-submission/src/form-fields/selection-matrix-fields/selection-matrix-fields.component.html","../../../projects/form-submission/src/form-fields/signature-fields/signature-fields.component.ts","../../../projects/form-submission/src/form-fields/signature-fields/signature-fields.component.html","../../../projects/form-submission/src/form-fields/slider-fields/slider-fields.component.ts","../../../projects/form-submission/src/form-fields/slider-fields/slider-fields.component.html","../../../projects/form-submission/src/form-fields/terms-and-condition-fields/terms-and-condition-fields.component.ts","../../../projects/form-submission/src/form-fields/terms-and-condition-fields/terms-and-condition-fields.component.html","../../../projects/form-submission/src/form-fields/text-area-fields/text-area-fields.component.ts","../../../projects/form-submission/src/form-fields/text-area-fields/text-area-fields.component.html","../../../projects/form-submission/src/form-fields/text-fields/text-fields.component.ts","../../../projects/form-submission/src/form-fields/text-fields/text-fields.component.html","../../../projects/form-submission/src/form-fields/toggle-switch-fields/toggle-switch-fields.component.ts","../../../projects/form-submission/src/form-fields/toggle-switch-fields/toggle-switch-fields.component.html","../../../projects/form-submission/src/form-fields/url-fields/url-fields.component.ts","../../../projects/form-submission/src/form-fields/url-fields/url-fields.component.html","../../../projects/form-submission/src/form-fields/section-fields/section-fields.component.ts","../../../projects/form-submission/src/form-fields/section-fields/section-fields.component.html","../../../projects/form-submission/src/logic/forth-child/forth-child.component.ts","../../../projects/form-submission/src/logic/forth-child/forth-child.component.html","../../../projects/form-submission/src/logic/third-child/third-child.component.ts","../../../projects/form-submission/src/logic/third-child/third-child.component.html","../../../projects/form-submission/src/logic/second-child/second-child.component.ts","../../../projects/form-submission/src/logic/second-child/second-child.component.html","../../../projects/form-submission/src/logic/first-child/first-child.component.ts","../../../projects/form-submission/src/logic/first-child/first-child.component.html","../../../projects/form-submission/src/question/question/question.component.ts","../../../projects/form-submission/src/question/question/question.component.html","../../../projects/form-submission/src/sub-form/submission-modal/submission-modal.component.ts","../../../projects/form-submission/src/sub-form/submission-modal/submission-modal.component.html","../../../projects/form-submission/src/sub-form/multiple-subform/multiple-subform.component.ts","../../../projects/form-submission/src/sub-form/multiple-subform/multiple-subform.component.html","../../../projects/form-submission/src/sub-form/sub-form/sub-form.component.ts","../../../projects/form-submission/src/sub-form/sub-form/sub-form.component.html","../../../projects/form-submission/src/element-type/form-elements/form-elements.component.ts","../../../projects/form-submission/src/element-type/form-elements/form-elements.component.html","../../../projects/form-submission/src/form-submission/navigation-tabs/navigation-tabs.component.ts","../../../projects/form-submission/src/form-submission/navigation-tabs/navigation-tabs.component.html","../../../projects/form-submission/src/form-submission/next-prev-navigation/next-prev-navigation.component.ts","../../../projects/form-submission/src/form-submission/next-prev-navigation/next-prev-navigation.component.html","../../../projects/form-submission/src/form-submission/submission-container/submission-container.component.ts","../../../projects/form-submission/src/form-submission/submission-container/submission-container.component.html","../../../projects/form-submission/src/form-submission/submit-form/submit-form.component.ts","../../../projects/form-submission/src/form-submission/submit-form/submit-form.component.html","../../../projects/form-submission/src/lib/form-submission.component.ts","../../../projects/form-submission/src/lib/form-submission.component.html","../../../projects/form-submission/src/form-fields/form-fields.module.ts","../../../projects/form-submission/src/logic/logic.module.ts","../../../projects/form-submission/src/question/question.module.ts","../../../projects/form-submission/src/sub-form/sub-form.module.ts","../../../projects/form-submission/src/element-type/element-type.module.ts","../../../projects/form-submission/src/form-submission/form-submission.module.ts","../../../projects/form-submission/src/lib/form-submission.module.ts","../../../projects/form-submission/src/public-api.ts","../../../projects/form-submission/src/piserve-tech-form-submission.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FormSubmissionService {\r\n\r\n constructor() { }\r\n}\r\n","export let environment = {\r\n production: false,\r\n googleRecaptchaSiteKey: '',\r\n htmlDirection: 'ltr'\r\n };\r\n ","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DataService {\r\n constructor() {}\r\n\r\n private dataSubject = new BehaviorSubject<string>('');\r\n public apiUrl$: Observable<string> = this.dataSubject.asObservable();\r\n private headerSubject = new BehaviorSubject<any>({});\r\n public header$: Observable<any> = this.headerSubject.asObservable();\r\n\r\n private parentQuestionsSubject = new BehaviorSubject<any>(null);\r\n public parentQuestions$: Observable<any> = this.parentQuestionsSubject.asObservable();\r\n\r\n setApiUrl(data: string): void {\r\n this.dataSubject.next(data);\r\n }\r\n\r\n setHeader(data: any) {\r\n this.headerSubject.next(data);\r\n }\r\n\r\n setParentQuestions(data: any): void {\r\n this.parentQuestionsSubject.next(data);\r\n }\r\n}\r\n","import { Appearance } from '../models/appearance.model';\r\nimport { ElementOptionAPI } from '../models/elementOptionAPI.model';\r\nimport { elementOptionAPIData } from '../models/elementOptionAPIData.model';\r\nimport { ElementOptionDB } from '../models/elementOptionDB.model';\r\nimport { ElementOptionDBCriteria } from '../models/elementOptionDBCriteria.model';\r\nimport { FormElement } from '../models/formElement.model';\r\nimport { Grid } from '../models/grid.model';\r\nimport { Page } from '../models/page.model';\r\nimport { PublicForm } from '../models/publicForm.model';\r\nimport { Question } from '../models/question.model';\r\nimport { Row } from '../models/row.model';\r\nimport { Validation } from '../models/validation.model';\r\nimport { Option } from '../models/option.model';\r\nimport { Section } from '../models/section.model';\r\nimport { SubForm } from '../models/subForm.model';\r\nimport { FormElementType } from '../models/formElementType.model';\r\nimport { Logic } from '../models/logic.model';\r\nimport { Attachment } from '../models/attachment.model';\r\nimport { Submission } from '../models/submission.model';\r\nimport { Answer } from '../models/answer.model';\r\nimport { termsAndConditionType } from '../models/terms&condition.model';\r\n\r\nexport function mapPublicFormToModel(apiPublicForm: any): PublicForm {\r\n return {\r\n name: apiPublicForm.result.name,\r\n pages: apiPublicForm.result.pages.map((apiPage: any) =>\r\n mapPageToModel(apiPage)\r\n ),\r\n questionAnswers:apiPublicForm.result.questionAnswers,\r\n parentId:apiPublicForm.result.parentId\r\n };\r\n}\r\n\r\n\r\nfunction mapPageToModel(apiPage: any): Page {\r\n return {\r\n title: apiPage.title,\r\n rows: apiPage.rows.map((apiRow: any) => mapRowToModel(apiRow)),\r\n };\r\n}\r\n\r\nfunction mapRowToModel(apiRow: any): Row {\r\n return {\r\n grid: apiRow.grid.map((apiGrid: any) => mapGridToModel(apiGrid)),\r\n };\r\n}\r\n\r\nfunction mapGridToModel(apiGrid: any): Grid {\r\n let entity: Section | Question | SubForm | undefined;\r\n\r\n switch (apiGrid.entityType) {\r\n case 'QUESTION':\r\n entity = mapQuestionToModel(apiGrid.element);\r\n break;\r\n case 'SECTION':\r\n entity = mapSectionToModel(apiGrid.element);\r\n break;\r\n case 'SUBFORM':\r\n entity = mapSubFormToModel(apiGrid.element);\r\n break;\r\n default:\r\n throw new Error(`Unknown entity type: ${apiGrid.entityType}`);\r\n }\r\n\r\n return {\r\n entityType: apiGrid.entityType,\r\n element: entity,\r\n };\r\n}\r\n\r\nexport function mapSectionToModel(apiSection: any): Section {\r\n return {\r\n id: apiSection.id,\r\n title: apiSection.title,\r\n description: apiSection.description,\r\n };\r\n}\r\n\r\nexport function mapQuestionToModel(apiQuestion: any): Question {\r\n return {\r\n count: apiQuestion.count,\r\n id: apiQuestion.id,\r\n questionNumber: apiQuestion.questionNumber,\r\n required: apiQuestion.required,\r\n hint: apiQuestion.hint,\r\n question: apiQuestion.question,\r\n answer: apiQuestion?.answer,\r\n validation: true,\r\n formElement: mapFormElementToModel(apiQuestion.formElement),\r\n childLogics: apiQuestion?.childLogics?.map((logic: any) =>\r\n mapLogicToModel(logic)\r\n ),\r\n answerId: apiQuestion?.answerId,\r\n attachments: apiQuestion?.attachments?.map((attachment: any) => mapAttachmentToModel(attachment)) || [],\r\n deleteFiles: [],\r\n };\r\n}\r\n\r\nfunction mapAttachmentToModel(apiAttachment: any): Attachment {\r\n return {\r\n fileId: apiAttachment.fileId,\r\n fileName: apiAttachment.fileName,\r\n fileUrl: apiAttachment.fileUrl,\r\n };\r\n}\r\n\r\nfunction mapFormElementToModel(apiFormElement: any): FormElement {\r\n return {\r\n elementType: apiFormElement.elementType,\r\n appearance: mapAppearanceToModel(apiFormElement.appearance),\r\n validation: mapValidationToModel(apiFormElement.validation),\r\n option: mapOptionToModel(apiFormElement?.option),\r\n selectionMatrixLabel: apiFormElement.selectionMatrixLabel,\r\n selectionMatrixColumn: apiFormElement.selectionMatrixColumn,\r\n termsAndConditionType: maptermsAndCondition(apiFormElement)\r\n };\r\n}\r\nfunction maptermsAndCondition(Element: any): termsAndConditionType {\r\n if(Element.termsAndCondition != undefined){\r\n let data = Element.termsAndCondition\r\n return {\r\n termsAndConditionType: data.termsAndConditionType,\r\n fileUrl: data.fileUrl,\r\n fileName: data.fileName,\r\n };\r\n }\r\n else{\r\n return {\r\n termsAndConditionType: '',\r\n fileUrl: '',\r\n fileName: '',\r\n }\r\n }\r\n\r\n}\r\n\r\nfunction mapLogicToModel(apiLogic: any): Logic {\r\n return {\r\n id: apiLogic.id,\r\n inputValue: apiLogic.inputValue,\r\n condition: apiLogic.condition,\r\n showLogic: false,\r\n formElements: apiLogic?.formElements?.map((element: any) =>\r\n mapFormElementTypeToModel(element)\r\n ),\r\n };\r\n}\r\n\r\nexport function mapSubFormToModel(apiSubForm: any): SubForm {\r\n return {\r\n id: apiSubForm.id,\r\n count: apiSubForm.count,\r\n title: apiSubForm.title,\r\n description: apiSubForm.description,\r\n subFormStructure: apiSubForm.subFormStructure,\r\n formElements: apiSubForm.formElements.map((element: any) => mapFormElementTypeToModel(element)),\r\n submissions: apiSubForm?.submissions?.map((submission: any) => mapSubmissionToModel(submission)),\r\n };\r\n}\r\n\r\nfunction mapSubmissionToModel(apiSubmission: any): Submission {\r\n return {\r\n submissionId: apiSubmission?.submissionId,\r\n answers: apiSubmission?.answers?.map((answer: any) => mapAnswerToModel(answer)),\r\n };\r\n}\r\n\r\nfunction mapAnswerToModel(apiAnswer: any): Answer {\r\n return {\r\n questionId: apiAnswer.questionId,\r\n answer: apiAnswer?.answer,\r\n answerId: apiAnswer?.answerId,\r\n attachments: apiAnswer?.attachments?.map((attachment: any) => mapAttachmentToModel(attachment)),\r\n };\r\n}\r\n\r\nexport function mapFormElementTypeToModel(\r\n apiFormElementType: any\r\n): FormElementType<any> {\r\n return {\r\n entityType: apiFormElementType?.entityType,\r\n element: apiFormElementType?.element,\r\n };\r\n}\r\n\r\nfunction mapAppearanceToModel(apiAppearance: any): Appearance {\r\n return {\r\n placeholder: apiAppearance?.placeholder,\r\n fontSize: apiAppearance?.fontSize,\r\n textAlign: apiAppearance?.textAlign,\r\n font: apiAppearance?.font,\r\n underline: apiAppearance?.underline,\r\n bold: apiAppearance?.bold,\r\n italics: apiAppearance?.italics,\r\n defaultValue: apiAppearance?.defaultValue,\r\n numberOfRows: apiAppearance?.numberOfRows,\r\n singleSelection: apiAppearance?.singleSelection,\r\n displayCountryCode: apiAppearance?.displayCountryCode,\r\n displayFlag: apiAppearance?.displayFlag,\r\n displayCode: apiAppearance?.displayCode,\r\n showCountryName: apiAppearance?.showCountryName,\r\n beautifyNumbers: apiAppearance?.beautifyNumbers,\r\n upAndDownButton: apiAppearance?.upAndDownButton,\r\n allowNegativeValues: apiAppearance?.allowNegativeValues,\r\n showPreviewButton: apiAppearance?.showPreviewButton,\r\n confirmPassword: apiAppearance?.confirmPassword,\r\n viewButton: apiAppearance?.viewButton,\r\n displayStrong: apiAppearance?.displayStrong,\r\n dateType: apiAppearance?.dateType,\r\n format: apiAppearance?.format,\r\n setCurrentPosition: apiAppearance?.setCurrentPosition,\r\n defaultZoomLevel: apiAppearance?.defaultZoomLevel,\r\n allowFullScreen: apiAppearance?.allowFullScreen,\r\n latitude: apiAppearance?.latitude,\r\n longitude: apiAppearance?.longitude,\r\n showAcceptButton: apiAppearance?.showAcceptButton,\r\n labelOnValue: apiAppearance?.labelOnValue,\r\n labelOffValue: apiAppearance?.labelOffValue,\r\n labelOnColor: apiAppearance?.labelOnColor,\r\n labelOffColor: apiAppearance?.labelOffColor,\r\n minValue: apiAppearance?.minValue,\r\n maxValue: apiAppearance?.maxValue,\r\n stepValue: apiAppearance?.stepValue,\r\n changeSliderColor: apiAppearance?.changeSliderColor,\r\n sliderColor: apiAppearance?.sliderColor,\r\n canvasOption: apiAppearance?.canvasOption,\r\n selectionType: apiAppearance?.selectionType,\r\n dragAndDrop: apiAppearance?.dragAndDrop,\r\n previewUploadedFiles: apiAppearance?.previewUploadedFiles,\r\n multiFileUploads: apiAppearance?.multiFileUploads,\r\n selectionColorRequired: apiAppearance?.selectionColorRequired,\r\n selectionColor: apiAppearance?.selectionColor,\r\n color: apiAppearance?.color,\r\n avatarPicker:apiAppearance?.avatarPicker,\r\n timeFormat:apiAppearance?.timeFormat\r\n };\r\n}\r\n\r\nfunction mapValidationToModel(apiValidation: any): Validation {\r\n return {\r\n regexValidation: apiValidation?.regexValidation,\r\n regex: apiValidation?.regex,\r\n validationMessage: apiValidation?.validationMessage,\r\n limitedCharacters: apiValidation?.limitedCharacters,\r\n count: apiValidation?.count,\r\n minimumSelection: apiValidation?.minimumSelection,\r\n maximumSelection: apiValidation?.maximumSelection,\r\n countryWiseValidation: apiValidation?.countryWiseValidation,\r\n restrictCountry: apiValidation?.restrictCountry,\r\n allowedCountries: apiValidation?.allowedCountries,\r\n blockedCountries: apiValidation?.blockedCountries,\r\n regularExpression: apiValidation?.regularExpression,\r\n expectedDomains: apiValidation?.expectedDomains,\r\n min: apiValidation?.min,\r\n max: apiValidation?.max,\r\n minLength: apiValidation?.minLength,\r\n maxLength: apiValidation?.maxLength,\r\n requireLowercaseLetters: apiValidation?.requireLowercaseLetters,\r\n requireUppercaseLetters: apiValidation?.requireUppercaseLetters,\r\n requireNumbers: apiValidation?.requireNumbers,\r\n requireSpecialCharacters: apiValidation?.requireSpecialCharacters,\r\n allowedSpecialCharacters: apiValidation?.allowedSpecialCharacters,\r\n minDateOption: apiValidation?.minDateOption,\r\n minDate: apiValidation?.minDate,\r\n maxDateOption: apiValidation?.maxDateOption,\r\n maxDate: apiValidation?.maxDate,\r\n regionBoundary: apiValidation?.regionBoundary,\r\n region: apiValidation?.region,\r\n preventFromProceedingWithoutAgree:\r\n apiValidation?.preventFromProceedingWithoutAgree,\r\n buttonColour: apiValidation?.buttonColour,\r\n maxFileSize: apiValidation?.maxFileSize,\r\n minFileSize: apiValidation?.minFileSize,\r\n minSelection: apiValidation?.minSelection,\r\n maxSelection: apiValidation?.maxSelection,\r\n fileTypes: apiValidation?.fileTypes,\r\n fileSize: apiValidation?.fileSize,\r\n fileSizeUnit: apiValidation?.fileSizeUnit,\r\n totalFileSize: apiValidation?.totalFileSize,\r\n minSelectionRequired: apiValidation?.minSelectionRequired,\r\n minSelectionValue: apiValidation?.minSelectionValue,\r\n validationType: apiValidation?.validationType,\r\n validation: apiValidation?.validation,\r\n minTime: apiValidation?.minTime,\r\n maxTime:apiValidation?.maxTime,\r\n minTimeOption:apiValidation?.minTimeOption,\r\n maxTimeOption: apiValidation?.maxTimeOption,\r\n };\r\n}\r\n\r\nfunction mapElementOptionDBToModel(apiElementOptionDB: any): ElementOptionDB {\r\n return {\r\n tableName: apiElementOptionDB.tableName,\r\n valueField: apiElementOptionDB.valueField,\r\n labelField: apiElementOptionDB.labelField,\r\n criteria: apiElementOptionDB?.criteria.map((apiCriteria: any) =>\r\n mapElementOptionDBCriteriaToModel(apiCriteria)\r\n ),\r\n };\r\n}\r\n\r\nfunction mapElementOptionDBCriteriaToModel(\r\n apiElementOptionDBCriteria: any\r\n): ElementOptionDBCriteria {\r\n return {\r\n field: apiElementOptionDBCriteria?.field,\r\n condition: apiElementOptionDBCriteria?.condition,\r\n valueSource: apiElementOptionDBCriteria?.valueSource,\r\n inputValue: apiElementOptionDBCriteria?.inputValue,\r\n logicalOperator: apiElementOptionDBCriteria?.logicalOperator,\r\n };\r\n}\r\n\r\nfunction mapElementOptionAPIToModel(\r\n apiElementOptionAPI: any\r\n): ElementOptionAPI {\r\n return {\r\n external: apiElementOptionAPI?.external,\r\n url: apiElementOptionAPI?.url,\r\n valueField: apiElementOptionAPI?.valueField,\r\n labelField: apiElementOptionAPI?.labelField,\r\n pathToValue: apiElementOptionAPI?.pathToValue,\r\n headers: apiElementOptionAPI?.headers?.map(mapElementOptionAPIDataToModel),\r\n params: apiElementOptionAPI?.params?.map(mapElementOptionAPIDataToModel),\r\n pathVariables: apiElementOptionAPI?.pathVariables?.map(\r\n mapElementOptionAPIDataToModel\r\n ),\r\n };\r\n}\r\n\r\nfunction mapElementOptionAPIDataToModel(\r\n apiElementOptionAPIData: any\r\n): elementOptionAPIData {\r\n return {\r\n keyName: apiElementOptionAPIData?.keyName,\r\n valueSource: apiElementOptionAPIData?.valueSource,\r\n inputValue: apiElementOptionAPIData?.inputValue,\r\n };\r\n}\r\n\r\nfunction mapOptionToModel(apiOption: any): Option {\r\n return {\r\n optionType: apiOption?.optionType,\r\n lookupTable: apiOption?.lookupTable,\r\n customOptions: apiOption?.customOptions?.map((option: { value: any }) => ({\r\n value: option.value,\r\n })),\r\n database: apiOption?.database\r\n ? mapElementOptionDBToModel(apiOption?.database)\r\n : undefined,\r\n api: apiOption?.api ? mapElementOptionAPIToModel(apiOption.api) : undefined,\r\n };\r\n}\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { DataService } from './data.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FormService {\r\n private apiUrl: string = '';\r\n header: any = {};\r\n parentQuestions: any;\r\n\r\n constructor(private http: HttpClient, private dataService: DataService) {\r\n this.dataService.apiUrl$.subscribe((data) => {\r\n this.apiUrl = data;\r\n });\r\n\r\n this.dataService.header$.subscribe((data) => {\r\n this.header = data;\r\n });\r\n\r\n this.dataService.parentQuestions$.subscribe((questions) => {\r\n if (questions) {\r\n this.parentQuestions = questions;\r\n }\r\n });\r\n }\r\n\r\n getQuestions(moduleName: string) {\r\n const headers = new HttpHeaders({\r\n 'Accept-Language': this.header.acceptedLanguage,\r\n });\r\n return this.http.get(`${this.apiUrl}/api/public/forms/${moduleName}`, {\r\n headers\r\n });\r\n }\r\n\r\n fetchDataFromDatabase(database: any) {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.post<any>(`${this.apiUrl}/api/load-from-db`, database, {\r\n headers,\r\n });\r\n }\r\n\r\n fetchDataFromLookup(tableName: string) {\r\n return this.http.get<any>(`${this.apiUrl}/api/public/lookup/${tableName}`);\r\n }\r\n\r\n fetchDataFromExternalAPI(apiConfig: any): Observable<any> {\r\n // Prepare headers dynamically\r\n let headers = new HttpHeaders();\r\n if (apiConfig.headers) {\r\n apiConfig.headers.forEach((header: any) => {\r\n if (header.keyName && header.inputValue) {\r\n \r\n if(header.keyName.toLowerCase() === 'authorization') {\r\n headers = headers.set(header.keyName, 'Bearer ' + header.inputValue);\r\n } else {\r\n headers = headers.set(header.keyName, header.inputValue);\r\n }\r\n \r\n }\r\n });\r\n }\r\n\r\n // Prepare params dynamically\r\n let params = new HttpParams();\r\n if (apiConfig.params) {\r\n apiConfig.params.forEach((param: any) => {\r\n if (param.keyName && param.inputValue) {\r\n params = params.set(param.keyName, param.inputValue);\r\n }\r\n });\r\n }\r\n\r\n // Construct URL with path variables\r\n let url = apiConfig.url;\r\n if (apiConfig.pathVariables) {\r\n apiConfig.pathVariables.forEach((pathVar: any) => {\r\n if (pathVar.keyName && pathVar.inputValue) {\r\n url = url.replace(`{${pathVar.keyName}}`, pathVar.inputValue);\r\n }\r\n });\r\n }\r\n\r\n // Make the GET request with headers and params\r\n return this.http.get<any>(url, { headers, params });\r\n //return this.http.get<any>(apiConfig.url);\r\n }\r\n\r\n submitForm(moduleName: string, formData: FormData): Observable<any> {\r\n const headers = new HttpHeaders({\r\n 'Auth-user': this.header.authUser,\r\n });\r\n const url = `${this.apiUrl}/api/public/forms/${moduleName}/submissions`;\r\n return this.http.post(url, formData, {\r\n headers\r\n });\r\n }\r\n\r\n getSubmittedForm(moduleName: string, submissionId: string) {\r\n const questions = this.parentQuestions ? this.parentQuestions.map((q: any) => `parentQuestions=${encodeURIComponent(q)}`).join('&') : '';\r\n return this.http.get<any>(`${this.apiUrl}/api/forms/${moduleName}/submissions/${submissionId}?${questions}`);\r\n }\r\n\r\n updateForm(moduleName: string, submissionId: string, formData: FormData): Observable<any> {\r\n const headers = new HttpHeaders({\r\n 'Auth-user': this.header.authUser,\r\n });\r\n const url = `${this.apiUrl}/api/public/forms/${moduleName}/submissions/${submissionId}`;\r\n return this.http.put(url, formData, {\r\n headers\r\n });\r\n }\r\n previewFile(url: any): Observable<any> {\r\n const headers = new HttpHeaders({\r\n 'Content-Type': this.header.contentType,\r\n 'auth-user': this.header.authUser,\r\n });\r\n const body = {\r\n // Your request body content here\r\n };\r\n const options = {\r\n headers: headers,\r\n body: body,\r\n };\r\n const fileUrl = url;\r\n const encodedFileUrl = encodeURIComponent(fileUrl);\r\n const fullUrl = `?url=${encodedFileUrl}`;\r\n return this.http.get<any>(this.apiUrl + `/api/cdn/preview${fullUrl}`, options);\r\n }\r\n\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss']\r\n})\r\nexport class HeaderComponent {\r\n @Input() name: string = '';\r\n}\r\n","<div class=\"head container\">\r\n <div class=\"registration-header\">\r\n <h2>{{ name }}</h2>\r\n </div>\r\n <div class=\"line\"></div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormService } from '../../services/form.service';\r\n\r\n@Component({\r\n selector: 'lib-check-box-fields',\r\n templateUrl: './check-box-fields.component.html',\r\n styleUrls: ['./check-box-fields.component.scss'],\r\n})\r\nexport class CheckBoxFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n selectionType: string = '';\r\n minimumSelection?: number;\r\n maximumSelection?: number;\r\n optionType: string = '';\r\n lookupTable: any = {};\r\n customOptions: any[] = [];\r\n database: any = {};\r\n api: any = {};\r\n apiOptions: any[] = []; \r\n selectedOptions: any[] = [];\r\n validationFailed: boolean = false;\r\n validationMessage: string = '';\r\n\r\n constructor(private formService: FormService) { }\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.selectionType = this.question.formElement.appearance.selectionType;\r\n this.minimumSelection =\r\n this.question.formElement.validation.minimumSelection;\r\n this.maximumSelection =\r\n this.question.formElement.validation.maximumSelection;\r\n this.optionType = this.question.formElement.option.optionType;\r\n switch (this.optionType) {\r\n case 'OPTION':\r\n this.customOptions = this.question.formElement.option.customOptions;\r\n if (this.question.answer) {\r\n this.initializeCustomOption();\r\n }\r\n break;\r\n case 'LOOKUP':\r\n this.lookupTable = this.question.formElement.option.lookupTable;\r\n this.fetchDataFromLookup();\r\n break;\r\n case 'DATABASE':\r\n this.database = this.question.formElement.option.database;\r\n this.fetchDataFromDatabase();\r\n break;\r\n case 'API':\r\n this.api = this.question.formElement.option.api;\r\n this.fetchDataFromAPI();\r\n break;\r\n default:\r\n console.warn('Unknown option type:', this.optionType);\r\n }\r\n\r\n // If selectionType is 'SINGLE', set minimumSelection and maximumSelection to 1\r\n if (this.selectionType === 'SINGLE') {\r\n this.minimumSelection = 1;\r\n this.maximumSelection = 1;\r\n }\r\n\r\n // If selectionType is 'MULTIPLE' and minSelection and maxSelection are not specified, set them to undefined\r\n if (\r\n this.selectionType === 'MULTIPLE' &&\r\n !this.minimumSelection &&\r\n !this.maximumSelection\r\n ) {\r\n this.minimumSelection = undefined;\r\n this.maximumSelection = undefined;\r\n }\r\n\r\n if(this.question.childLogics && this.question.answer){\r\n this.updateChildLogics(this.question)\r\n }\r\n }\r\n\r\n initializeCustomOption() {\r\n this.customOptions?.forEach((option: any) => {\r\n if (this.question?.answer?.find((a: any) => a.toString() === option.value.toString())) {\r\n this.selectedOptions.push(option);\r\n }\r\n })\r\n }\r\n\r\n onCheckboxChange(option: any, event: any) {\r\n if (this.selectionType === 'SINGLE') {\r\n if (event.target.checked) {\r\n this.selectedOptions = [option];\r\n this.question.answer = [option.value];\r\n } else {\r\n this.selectedOptions = [];\r\n this.question.answer = [];\r\n }\r\n this.isMinimumSelectionValid();\r\n } else if (this.selectionType === 'MULTIPLE') {\r\n if (event.target.checked) {\r\n if (!this.selectedOptions.includes(option)) {\r\n this.selectedOptions.push(option);\r\n }\r\n } else {\r\n this.selectedOptions = this.selectedOptions.filter(\r\n (item) => item !== option\r\n );\r\n }\r\n this.question.answer = this.selectedOptions.map((item) => item.value);\r\n this.isMinimumSelectionValid();\r\n }\r\n\r\n // Check if the number of selected options exceeds the maximum allowed\r\n if (\r\n this.maximumSelection !== undefined &&\r\n this.selectedOptions.length > this.maximumSelection\r\n ) {\r\n // If exceeded, uncheck the last selected option\r\n event.target.checked = false;\r\n this.selectedOptions = this.selectedOptions.filter(\r\n (item) => item !== option\r\n );\r\n this.question.answer = this.selectedOptions.map((item) => item.value);\r\n this.isMinimumSelectionValid();\r\n }\r\n\r\n if(this.question.childLogics){\r\n this.updateChildLogics(this.question);\r\n }\r\n }\r\n\r\n updateChildLogics(question: any) {\r\n if (question.childLogics && Array.isArray(question.childLogics)) {\r\n question.childLogics.forEach((childLogic: any) => {\r\n if(this.selectionType=='SINGLE'){\r\n if(this.selectedOptions.length==0){\r\n childLogic.showLogic=false;\r\n }\r\n else{\r\n childLogic.showLogic = this.evaluateCondition(this.selectedOptions[0]?.value, childLogic.condition, childLogic.inputValue);\r\n }\r\n }\r\n else if (this.selectionType === 'MULTIPLE') {\r\n if(this.selectedOptions.length==0){\r\n childLogic.show=false;\r\n }\r\n else{\r\n const selectedValues = this.selectedOptions.map((item: any) => item.value);\r\n childLogic.showLogic = this.evaluateMultipleCondition(selectedValues, childLogic.condition, childLogic.inputValue);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n \r\n evaluateCondition(answer: any[], condition: string, inputValue: any): boolean {\r\n const stringInputValue = Array.isArray(inputValue) ? inputValue.map(val => val.toString()) : inputValue;\r\n\r\n switch (condition) { \r\n case \"!=\":\r\n return answer !=stringInputValue;\r\n case \"=\":\r\n return answer ==stringInputValue;\r\n case \"IN\":\r\n return stringInputValue.includes(answer);\r\n case \"NOT IN\":\r\n return !(stringInputValue.includes(answer))\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n evaluateMultipleCondition(answers: any[], condition: string, inputValue: any): boolean {\r\n const stringInputValue = Array.isArray(inputValue) ? inputValue.map(val => val.toString()) : inputValue.toString();\r\n switch (condition) {\r\n case \"!=\":\r\n return answers.every(answer => answer != stringInputValue);\r\n case \"=\":\r\n return answers.some(answer => answer == stringInputValue);\r\n case \"IN\":\r\n return answers.some(answer => stringInputValue.includes(answer));\r\n case \"NOT IN\":\r\n return answers.every(answer => !stringInputValue.includes(answer));\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n fetchDataFromLookup() {\r\n this.formService.fetchDataFromLookup(this.lookupTable).subscribe(\r\n (response) => {\r\n this.customOptions = response.result.values.map(\r\n (item: { value: string; label: string }) => ({\r\n value: item.value,\r\n label: item.label,\r\n })\r\n );\r\n if (this.question.answer) {\r\n this.initializeCustomOption();\r\n }\r\n },\r\n (error) => {\r\n console.error('HTTP Error:', error);\r\n }\r\n );\r\n }\r\n\r\n fetchDataFromDatabase() {\r\n const transformedDatabase = this.transformDatabaseObject(this.database);\r\n this.formService.fetchDataFromDatabase(transformedDatabase).subscribe(\r\n (response) => {\r\n if (response.success) {\r\n this.customOptions = response.result.map(\r\n (item: { value: string; label: string }) => ({\r\n value: item.value,\r\n label: item.label,\r\n })\r\n );\r\n if (this.question.answer) {\r\n this.initializeCustomOption();\r\n }\r\n } else {\r\n console.error('Error fetching data from database:', response.message);\r\n }\r\n },\r\n (error) => {\r\n console.error('HTTP Error:', error);\r\n }\r\n );\r\n }\r\n\r\n transformDatabaseObject(database: any) {\r\n return {\r\n tableName: database.tableName,\r\n valueField: database.valueField,\r\n labelField: database.labelField,\r\n criteria: database.criteria.map((criteria: any) => ({\r\n field: criteria?.field,\r\n valueSource:criteria?.valueSource,\r\n condition: criteria?.condition,\r\n value: criteria?.inputValue,\r\n logicalOperator: criteria?.logicalOperator,\r\n })),\r\n };\r\n }\r\n\r\n fetchDataFromAPI() {\r\n const apiConfig = this.api;\r\n this.formService.fetchDataFromExternalAPI(apiConfig).subscribe(\r\n (response) => {\r\n let data;\r\n if(apiConfig.pathToValue) {\r\n data = this.extractDataByPath(response, apiConfig.pathToValue);\r\n } else {\r\n data = response;\r\n }\r\n \r\n this.customOptions = data.map((item: any) => ({\r\n value: item[apiConfig.valueField],\r\n label: item[apiConfig.labelField],\r\n }));\r\n if (this.question.answer) {\r\n \r\n this.initializeCustomOption();\r\n \r\n }\r\n },\r\n (error) => {\r\n console.error('HTTP Error:', error);\r\n }\r\n );\r\n }\r\n\r\n extractDataByPath(data: any, path: string) {\r\n return path.split('.').reduce((acc, part) => acc && acc[part], data);\r\n }\r\n\r\n isMinimumSelectionValid() {\r\n this.validationFailed = false;\r\n \r\n if (this.selectedOptions.length == 0 && this.required) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.question.validation = false;\r\n } else if (this.minimumSelection !== undefined) {\r\n if(this.selectionType=='SINGLE'){\r\n if (this.selectedOptions.length < this.minimumSelection && this.required) {\r\n this.validationFailed = true;\r\n this.validationMessage = `Minimum ${this.minimumSelection} selection(s) required.`;\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n }\r\n else{\r\n if (this.selectedOptions.length < this.minimumSelection) {\r\n this.validationFailed = true;\r\n this.validationMessage = `Minimum ${this.minimumSelection} selection(s) required.`;\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n }\r\n } else {\r\n this.question.validation = true;\r\n }\r\n }\r\n\r\n getOptions() {\r\n if (this.optionType === 'OPTION') {\r\n return this.customOptions;\r\n } else if (this.optionType === 'LOOKUP') {\r\n return Object.values(this.lookupTable);\r\n } else if (this.optionType === 'API') {\r\n return this.apiOptions.map((option) => option.valueField);\r\n } else {\r\n return [];\r\n }\r\n }\r\n\r\n isOptionDisabled(option: any): boolean {\r\n return (\r\n this.maximumSelection !== undefined &&\r\n this.selectedOptions.length >= this.maximumSelection &&\r\n !this.selectedOptions.includes(option)\r\n );\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"form-check\" *ngFor=\"let option of customOptions\">\r\n <input\r\n class=\"form-check-input\"\r\n type=\"checkbox\"\r\n [id]=\"option.value + question?.id\"\r\n [name]=\"option.value + 'Checkbox'\"\r\n [value]=\"option.value\"\r\n (change)=\"onCheckboxChange(option, $event)\"\r\n [disabled]=\"isOptionDisabled(option)\"\r\n [checked]=\"selectedOptions.includes(option)\"\r\n />\r\n <label\r\n class=\"formCheckLabel ms-2 me-4 mb-2\"\r\n [for]=\"option.value + question?.id\"\r\n *ngIf=\"optionType == 'OPTION'\"\r\n >{{ option.value }}</label\r\n >\r\n <label\r\n class=\"formCheckLabel ms-2 me-4\"\r\n [for]=\"option.value + question?.id\"\r\n *ngIf=\"optionType == 'LOOKUP' || 'DATABASE' || 'API'\"\r\n >{{ option.label }}</label\r\n >\r\n </div>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n</div>\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport {\r\n BsDatepickerConfig,\r\n BsDatepickerDirective,\r\n} from 'ngx-bootstrap/datepicker';\r\n\r\n@Component({\r\n selector: 'lib-date-time-fields',\r\n templateUrl: './date-time-fields.component.html',\r\n styleUrls: ['./date-time-fields.component.scss'],\r\n providers: [DatePipe]\r\n})\r\nexport class DateTimeFieldsComponent {\r\n bsConfig: Partial<BsDatepickerConfig> = {\r\n containerClass: 'theme-dark-blue',\r\n isAnimated: true,\r\n adaptivePosition: true,\r\n showWeekNumbers: false,\r\n };\r\n\r\n @Input() question: any = {};\r\n required: boolean = false;\r\n hint: string = '';\r\n count: number = 0;\r\n minTime: string = '';\r\n maxTime: string = '';\r\n dateType: string = '';\r\n format: string = '';\r\n timeFormat: string ='';\r\n minDateOption: string = '';\r\n minDate: Date | undefined;\r\n maxDateOption: string = '';\r\n maxDate: Date | undefined;\r\n todayDate: Date = new Date();\r\n selectedDate: Date | null = null;\r\n selectedTime: string = '';\r\n selectedDateRange: string = '';\r\n selectedDateAndTime: Date | null = null;\r\n validationFailed!: boolean;\r\n timeValidationFailed!: boolean;\r\n validationMessage: string = '';\r\n maxTimeOption: string = '';\r\n minTimeOption: string = '';\r\n \r\n @ViewChild('datepickerYMD') datepicker!: BsDatepickerDirective;\r\n @ViewChild('daterangepicker') dateRangePicker!: BsDatepickerDirective;\r\n @ViewChild('dateAndTimePicker') dateAndTimePicker!: BsDatepickerDirective;\r\n constructor(private datePipe: DatePipe) { }\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n \r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.dateType = this.question.formElement.appearance.dateType;\r\n this.minDateOption = this.question.formElement.validation.minDateOption;\r\n\r\n \r\n this.minDate = this.getMinDate();\r\n\r\n \r\n this.maxDateOption = this.question.formElement.validation.maxDateOption;\r\n this.maxDate = this.getMaxDate();\r\n this.setDateTimeFormat();\r\n if(this.question?.answer && (this.question?.answer).length>0)\r\n this.selectedDate = this.question?.answer ; \r\n this.selectedTime = this.question.answer;\r\n if(this.question?.answer && (this.question?.answer).length>0)\r\n this.selectedDateAndTime = new Date(this.question.answer);\r\n this.selectedDateRange = this.question.answer;\r\n this.minTimeOption=this.question.formElement.validation.minTimeOption;\r\n this.maxTimeOption=this.question.formElement.validation.maxTimeOption;\r\n if(this.dateType!=='DATE_AND_TIME'){\r\n this.minTime=this.getMinTime().toString();\r\n this.maxTime=this.getMaxTime().toString();\r\n }\r\n if(this.dateType==='DATE_AND_TIME' && this.question?.answer){\r\n const dateTimeArray = this.question.answer \r\n ? this.question.answer.split(',')\r\n : []; // Fallback to an empty array if `this.question.answer` is undefined\r\n \r\n if (dateTimeArray.length === 2) {\r\n const fetchedDate = dateTimeArray[0].trim();\r\n const fetchedTime = dateTimeArray[1].trim();\r\n this.selectedDate=fetchedDate;\r\n this.selectedTime=fetchedTime;\r\n }\r\n\r\n const formattedDate = this.datePipe.transform(this.selectedDateAndTime, 'dd/MM/yyyy');\r\n const formatteminDate = this.datePipe.transform(this.minDate, 'dd/MM/yyyy');\r\n const formattemaxDate = this.datePipe.transform(this.maxDate, 'dd/MM/yyyy');\r\n \r\n if(formattedDate===formatteminDate){\r\n this.minTime=this.getMinTime().toString();\r\n if (this.timeFormat=== '12') {\r\n this.maxTime = '12:00 pm';\r\n } else {\r\n this.maxTime = '23:00';\r\n }\r\n }\r\n if(formattedDate===formattemaxDate){\r\n this.maxTime=this.getMaxTime().toString();\r\n if (this.timeFormat === '12') {\r\n this.minTime = '12:00 am';\r\n } else {\r\n this.minTime = '00:00';\r\n }\r\n}\r\nif(formattedDate!==formatteminDate && formattedDate!==formattemaxDate){\r\n if (this.timeFormat === '12') {\r\n this.minTime = '12:00 am';\r\n this.maxTime = '12:00 pm';\r\n } else {\r\n this.minTime = '00:00';\r\n this.maxTime = '23:00';\r\n }\r\n}\r\n \r\n }\r\n\r\n \r\n if (!this.minTime || this.minTime.length === 0) {\r\n if (this.timeFormat === '12') {\r\n this.minTime = '12:00 am';\r\n } else {\r\n this.minTime = '00:00';\r\n }\r\n }\r\n\r\n if (!this.maxTime || this.maxTime.length === 0) {\r\n if (this.timeFormat=== '12') {\r\n this.maxTime = '12:00 pm';\r\n } else {\r\n this.maxTime = '23:00';\r\n }\r\n }\r\n\r\n\r\n \r\n }\r\n\r\n setDateTimeFormat() {\r\n switch (this.dateType) {\r\n case 'DATE_ONLY':\r\n this.format =this.question.formElement.appearance.format; \r\n break;\r\n case 'TIME_ONLY': \r\n this.timeFormat = this.question.formElement.appearance.timeFormat;\r\n break;\r\n case 'DATE_AND_TIME':\r\n this.format = this.question.formElement.appearance.format;\r\n break;\r\n case 'DATE_RANGE':\r\n this.format = this.question.formElement.appearance.format;\r\n break;\r\n default:\r\n this.format = 'DD/MM/YYYY';\r\n }\r\n }\r\n\r\n getMinDate(): Date | undefined {\r\n if (this.minDateOption === 'CURRENT_DATE') {\r\n return this.todayDate;\r\n } else if (this.minDateOption === 'CUSTOM') {\r\n return new Date(this.question.formElement.validation.minDate);\r\n }\r\n return undefined; // Return undefined if no valid option\r\n }\r\n\r\n getMaxDate(): Date | undefined {\r\n if (this.maxDateOption === 'CURRENT_DATE') {\r\n return this.todayDate;\r\n } else if (this.maxDateOption === 'CUSTOM') {\r\n return new Date(this.question.formElement.validation.maxDate);\r\n }\r\n return undefined;\r\n }\r\n\r\n getMinTime() {\r\n if (this.minTimeOption) {\r\n const format = this.timeFormat === '24' ? 'HH:mm' : 'hh:mm a';\r\n \r\n if (this.minTimeOption === 'CURRENT_TIME') {\r\n const now = new Date();\r\n return this.datePipe.transform(now, format) || '';\r\n } else if (this.minTimeOption === 'CUSTOM') {\r\n const customTime = this.question.formElement.validation.minTime;\r\n const [hours, minutes] = customTime.split(':'); // Split by colon to get hours and minutes\r\n \r\n // Create a Date object with a fixed date and custom time\r\n const customDate = new Date();\r\n customDate.setHours(parseInt(hours, 10), parseInt(minutes, 10), 0, 0); // Set hours and minutes\r\n\r\n return this.datePipe.transform(customDate, format) || '';\r\n }\r\n }\r\n \r\n // Ensure a default return if no condition is met\r\n return '';\r\n }\r\n \r\n\r\n getMaxTime() {\r\n if(this.maxTimeOption){\r\n const format= this.timeFormat==='24'?'HH:mm':'hh:mm a';\r\n if(this.maxTimeOption==='CURRENT_TIME')\r\n {\r\n const now = new Date();\r\n return this.datePipe.transform(now,format) || '';\r\n }\r\n else if(this.maxTimeOption==='CUSTOM'){\r\n const customTime = this.question.formElement.validation.maxTime;\r\n const [hours, minutes] = customTime.split(':'); // Split by colon to get hours and minutes\r\n \r\n // Create a Date object with a fixed date and custom time\r\n const customDate = new Date();\r\n customDate.setHours(parseInt(hours, 10), parseInt(minutes, 10), 0, 0); // Set hours and minutes\r\n\r\n return this.datePipe.transform(customDate, format) || '';\r\n }\r\n }\r\n\r\n return '';\r\n }\r\n\r\n openDatePicker() {\r\n this.datepicker.toggle();\r\n }\r\n\r\n openDateRangePicker() {\r\n this.dateRangePicker.toggle();\r\n }\r\n\r\n openDateAndTimePicker() {\r\n this.dateAndTimePicker.toggle();\r\n }\r\n \r\n\r\n validateField() {\r\n if (this.dateType === 'DATE_ONLY') {\r\n if (this.selectedDate) {\r\n this.question.answer = this.formatDate(this.selectedDate.toString());\r\n } else {\r\n this.question.answer = '';\r\n }\r\n \r\n this.validateDateOnly()\r\n }\r\n else if(this.dateType === 'TIME_ONLY'){\r\n this.question.answer=String(this.selectedTime);\r\n this.validateTimeOnly()\r\n }\r\n else if (this.dateType === 'DATE_AND_TIME') {\r\n if (this.selectedDateAndTime) {\r\n this.question.answer = this.formatDate(this.selectedDateAndTime.toString());\r\n } else {\r\n this.question.answer = '';\r\n }\r\n \r\n this.validateDateAndTime()\r\n\r\n }\r\n else {\r\n this.question.answer = this.formatDate(this.selectedDateRange);\r\n this.validateDateRange()\r\n }\r\n }\r\n\r\n formatDate(date: string | Date, type: string = 'dateTime'): string {\r\n switch (this.dateType) {\r\n case 'DATE_ONLY':\r\n return this.datePipe.transform(this.selectedDate, 'dd/MM/yyyy') || '';\r\n case 'DATE_AND_TIME':\r\n const formattedDate = this.datePipe.transform(this.selectedDateAndTime, 'dd/MM/yyyy');\r\n const formatteminDate = this.datePipe.transform(this.minDate, 'dd/MM/yyyy');\r\n const formattemaxDate = this.datePipe.transform(this.maxDate, 'dd/MM/yyyy');\r\n if(formattedDate===formatteminDate){\r\n this.minTime=this.getMinTime().toString();\r\n if (this.timeFormat=== '12') {\r\n this.maxTime = '12:00 pm';\r\n } else {\r\n this.maxTime = '23:00';\r\n }\r\n }\r\n if(formattedDate===formattemaxDate){\r\n this.maxTime=this.getMaxTime().toString();\r\n if (this.timeFormat === '12') {\r\n this.minTime = '12:00 am';\r\n } else {\r\n this.minTime = '00:00';\r\n }\r\n }\r\n if(formattedDate!==formatteminDate && formattedDate!==formattemaxDate){\r\n if (this.timeFormat === '12') {\r\n this.minTime = '12:00 am';\r\n this.maxTime = '12:00 pm';\r\n } else {\r\n this.minTime = '00:00';\r\n this.maxTime = '23:00';\r\n }\r\n }\r\n const formattedTime = this.selectedTime || ''; // If selectedTime is null or undefined, use empty string\r\n if (formattedDate && formattedTime) {\r\n return `${formattedDate},${formattedTime}`;\r\n }\r\n return '';\r\n case 'DATE_RANGE':\r\n \r\n const dates = date as unknown as Date[];\r\n \r\n // Ensure dates is defined and is an array\r\n if (Array.isArray(dates) && dates.length === 2) {\r\n const start = this.datePipe.transform(dates[0], 'dd/MM/yyyy');\r\n const end = this.datePipe.transform(dates[1], 'dd/MM/yyyy');\r\n return `${start} - ${end}`;\r\n }\r\n \r\n return '';\r\n default:\r\n return this.datePipe.transform(date, 'dd/MM/yyyy') || '';\r\n }\r\n }\r\n\r\n validateDateOnly() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (this.required && !this.selectedDate) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n }\r\n validateTimeOnly() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (this.required && !this.selectedTime) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';;\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n }\r\n validateDateRange() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (this.required && !this.selectedDateRange) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n }\r\n validateDateAndTime() {\r\n this.validationFailed = false;\r\n this.timeValidationFailed= false;\r\n this.validationMessage = '';\r\n if (this.required && !this.selectedDateAndTime ) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.question.validation = false;\r\n }\r\n else if(this.required && !this.selectedTime){\r\n this.timeValidationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n }\r\n\r\n convertToISODate(\r\n dateInput: [number, number, number] | string | null | undefined\r\n ): Date | null {\r\n \r\n \r\n if (!dateInput) {\r\n \r\n \r\n return null; // Return null if dateInput is null, undefined, or any falsy value\r\n }\r\n\r\n let year, month, day;\r\n\r\n if (Array.isArray(dateInput)) {\r\n // Extract year, month, and day from array input\r\n [year, month, day] = dateInput;\r\n\r\n // Validate the array format\r\n if (\r\n typeof year !== 'number' ||\r\n typeof month !== 'number' ||\r\n typeof day !== 'number' ||\r\n isNaN(year) ||\r\n isNaN(month) ||\r\n isNaN(day) ||\r\n !Number.isInteger(year) ||\r\n !Number.isInteger(month) ||\r\n !Number.isInteger(day) ||\r\n month < 1 ||\r\n month > 12 ||\r\n day < 1 ||\r\n day > 31\r\n ) {\r\n return null;\r\n }\r\n } else if (typeof dateInput === 'string') {\r\n // Check if the string matches the YYYY-MM-DD format\r\n const dateParts = dateInput.split('-');\r\n if (dateParts.length !== 3) return null;\r\n\r\n [year, month, day] = dateParts.map(Number);\r\n\r\n // Validate the parsed parts\r\n if (\r\n isNaN(year) ||\r\n isNaN(month) ||\r\n isNaN(day) ||\r\n !Number.isInteger(year) ||\r\n !Number.isInteger(month) ||\r\n !Number.isInteger(day) ||\r\n month < 1 ||\r\n month > 12 ||\r\n day < 1 ||\r\n day > 31\r\n ) {\r\n return null;\r\n }\r\n } else {\r\n return null; // Unsupported input type\r\n }\r\n\r\n // Create a Date object (month is 0-based, so subtract 1)\r\n const date = new Date(year, month - 1, day);\r\n\r\n // Verify if the Date object matches the provided year, month, and day\r\n if (\r\n date.getFullYear() !== year ||\r\n date.getMonth() !== month - 1 ||\r\n date.getDate() !== day\r\n ) {\r\n return null;\r\n }\r\n\r\n return date;\r\n }\r\n\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"dateType === 'DATE_ONLY'\">\r\n <!-- Date only picker -->\r\n <div class=\"input-container\">\r\n <input\r\n class=\"form-control height\"\r\n #datepickerYMD=\"bsDatepicker\"\r\n bsDatepicker\r\n [minDate]=\"minDate ? minDate : undefined\"\r\n [maxDate]=\"maxDate ? maxDate : undefined\"\r\n [bsConfig]=\"{ dateInputFormat: format }\"\r\n [(ngModel)]=\"selectedDate\"\r\n (blur)=\"validateField()\"\r\n (ngModelChange)=\"validateField()\"\r\n [class.invalid]=\"validationFailed\"\r\n placeholder=\"Select date\"\r\n />\r\n <i\r\n class=\"fa-solid fa-calendar-days calendar-icon text-primary fs-5\"\r\n (click)=\"openDatePicker()\"\r\n ></i>\r\n </div>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"dateType === 'TIME_ONLY'\">\r\n <!-- Time picker -->\r\n\r\n\r\n<div class=\"input-container\">\r\n <input\r\n class=\"form-control height appearanceInput mt-3\"\r\n aria-label=\"Select time\"\r\n placeholder=\"Select time\"\r\n readonly\r\n [format]=\"timeFormat==='24'?24:12\"\r\n [ngxTimepicker]=\"fullTime3\"\r\n [(ngModel)]=\"selectedTime\"\r\n [max]=\"maxTime\"\r\n [min]=\"minTime\"\r\n (ngModelChange)=\"validateField()\"\r\n [class.invalid]=\"validationFailed\"\r\n />\r\n \r\n <i\r\n id=\"startDateIcon\"\r\n class=\"fa-solid fa-clock text-primary fs-6 clock-icon\"\r\n (click)=\"fullTime3.open()\"\r\n style=\"cursor: pointer;\"\r\n></i>\r\n <ngx-material-timepicker #fullTime3></ngx-material-timepicker>\r\n</div>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"dateType === 'DATE_AND_TIME'\">\r\n <!-- Date and time picker -->\r\n <div class=\"input-container\">\r\n <input\r\n #dateAndTimePicker=\"bsDatepicker\"\r\n type=\"text\"\r\n class=\"form-control height\"\r\n [minDate]=\"minDate ? minDate : undefined\"\r\n [maxDate]=\"maxDate ? maxDate : undefined\"\r\n [bsConfig]=\"{\r\n dateInputFormat: format\r\n }\"\r\n placeholder=\"Select date\"\r\n bsDatepicker\r\n [class.invalid]=\"validationFailed\"\r\n [(ngModel)]=\"selectedDateAndTime\"\r\n (blur)=\"validateField()\"\r\n (ngModelChange)=\"validateField()\"\r\n />\r\n <i\r\n class=\"fa-solid fa-calendar-days calendar-icon text-primary fs-5\"\r\n (click)=\"openDateAndTimePicker()\"\r\n ></i>\r\n </div>\r\n <div class=\"input-container\" *ngIf=\"selectedDateAndTime && selectedDateAndTime != null\">\r\n <input\r\n \r\n class=\"form-control height appearanceInput mt-3\"\r\n aria-label=\"Select time\"\r\n placeholder=\"Select time\"\r\n readonly\r\n [format]=\"timeFormat==='24'?24:12\"\r\n [ngxTimepicker]=\"fullTime4\"\r\n [(ngModel)]=\"selectedTime\"\r\n [max]=\"maxTime\"\r\n [min]=\"minTime\"\r\n (ngModelChange)=\"validateField()\"\r\n [class.invalid]=\"timeValidationFailed\"\r\n />\r\n \r\n <i\r\n id=\"startDateIcon\"\r\n class=\"fa-solid fa-clock text-primary fs-6 clock-icon\"\r\n (click)=\"fullTime4.open()\"\r\n style=\"cursor: pointer;\"\r\n ></i>\r\n <ngx-material-timepicker #fullTime4></ngx-material-timepicker>\r\n </div>\r\n \r\n <div *ngIf=\"validationFailed || timeValidationFailed\" class=\"text-danger mt-2\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"dateType === 'DATE_RANGE'\">\r\n <!-- Date range picker -->\r\n <div class=\"input-container\">\r\n <input\r\n type=\"text\"\r\n class=\"form-control height\"\r\n #daterangepicker=\"bsDaterangepicker\"\r\n bsDaterangepicker\r\n placeholder=\"Select date\"\r\n [minDate]=\"minDate ? minDate : undefined\"\r\n [maxDate]=\"maxDate ? maxDate : undefined\"\r\n [bsConfig]=\"{\r\n rangeInputFormat: format,\r\n dateInputFormat: format,\r\n }\"\r\n [(ngModel)]=\"selectedDateRange\"\r\n (blur)=\"validateField()\"\r\n (ngModelChange)=\"validateField()\"\r\n [class.invalid]=\"validationFailed\"\r\n />\r\n <i\r\n class=\"fa-solid fa-calendar-days calendar-icon text-primary fs-5\"\r\n (click)=\"openDateRangePicker()\"\r\n ></i>\r\n </div>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n </ng-container>\r\n</div>\r\n","import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormService } from '../../services/form.service';\r\n\r\ninterface DropDownData {\r\n value: string;\r\n label: string;\r\n image: string;\r\n}\r\n\r\n@Component({\r\n selector: 'lib-drop-down-fields',\r\n templateUrl: './drop-down-fields.component.html',\r\n styleUrls: ['./drop-down-fields.component.scss'],\r\n})\r\nexport class DropDownFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n selectionType: string = '';\r\n minimumSelection: number = 0;\r\n maximumSelection: number = 0;\r\n optionType: string = '';\r\n lookupTable: string = '';\r\n customOptions: DropDownData[] = [];\r\n database: any = {};\r\n api: any = {};\r\n selectedValue: any[] = [];\r\n validationFailed!: boolean;\r\n validationMessage: string = '';\r\n\r\n constructor(private formService: FormService,\r\n private cdr:ChangeDetectorRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n onValueChange(newValue: any) {\r\n this.selectedValue = newValue;\r\n this.selectItems();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.selectionType = this.question.formElement.appearance.selectionType;\r\n this.minimumSelection =\r\n this.question.formElement.validation.minimumSelection;\r\n this.maximumSelection =\r\n this.question.formElement.validation.maximumSelection;\r\n this.optionType = this.question.formElement.option.optionType;\r\n switch (this.optionType) {\r\n case 'OPTION':\r\n this.customOptions = this.question.formElement.option.customOptions.map(\r\n (option: { value: string }) => ({\r\n label: option.value,\r\n value: option.value,\r\n image: '',\r\n })\r\n );\r\n if (this.question.answer) {\r\n this.initializeCustomOption();\r\n }\r\n break;\r\n case 'LOOKUP':\r\n this.lookupTable = this.question.formElement.option.lookupTable;\r\n this.fetchDataFromLookup();\r\n break;\r\n case 'DATABASE':\r\n this.database = this.question.formElement.option.database;\r\n this.fetchDataFromDatabase();\r\n break;\r\n case 'API':\r\n this.api = this.question.formElement.option.api;\r\n this.fetchDataFromAPI();\r\n break;\r\n default:\r\n console.warn('Unknown option type:', this.optionType);\r\n }\r\n\r\n if(this.question.childLogics && this.question.answer){\r\n this.updateChildLogics(this.question)\r\n }\r\n }\r\n\r\n initializeCustomOption() {\r\n this.customOptions.forEach((option: any) => {\r\n const isMatch = this.question?.answer?.some((a: any) => {\r\n const parts = a.trim().split('|'); \r\n if (parts.length === 2) {\r\n const label = parts[0]; \r\n const value = parts[1]; \r\n return value === option.value; \r\n } else {\r\n return false; \r\n }\r\n });\r\n if (isMatch) {\r\n this.selectedValue.push(option);\r\n }\r\n });\r\n \r\n \r\n \r\n this.cdr.detectChanges();\r\n }\r\n\r\n transformDatabaseObject(database: any) {\r\n return {\r\n tableName: database.tableName,\r\n valueField: database.valueField,\r\n labelField: database.labelField,\r\n criteria: database.criteria.map((criteria: any) => ({\r\n field: criteria.field,\r\n valueSource:criteria?.valueSource,\r\n condition: criteria.condition,\r\n value: criteria.inputValue,\r\n logicalOperator: criteria.logicalOperator,\r\n })),\r\n };\r\n }\r\n\r\n\r\n fetchDataFromDatabase() {\r\n const transformedDatabase = this.transformDatabaseObject(this.database);\r\n this.formService.fetchDataFromDatabase(transformedDatabase).subscribe(\r\n (response) => {\r\n if (response.success) {\r\n this.customOptions = response.result.map(\r\n (item: { value: string; label: string }) => ({\r\n value: item.value,\r\n label: item.label,\r\n })\r\n );\r\n if (this.question.answer) {\r\n this.initializeCustomOption();\r\n }\r\n } else {\r\n console.error('Error fetching data from database:', response.message);\r\n }\r\n this.cdr.detectChanges();\r\n },\r\n (error) => {\r\n console.error('HTTP Error:', error);\r\n this.cdr.detectChanges();\r\n }\r\n );\r\n }\r\n\r\n fetchDataFromLookup() {\r\n this.formService.fetchDataFromLookup(this.lookupTable).subscribe(\r\n (response) => {\r\n this.customOptions = response.result.values.map(\r\n (item: { value: string; label: string }) => ({\r\n value: item.value,\r\n label: item.label,\r\n })\r\n );\r\n if (this.question.answer) {\r\n this.initializeCustomOption();\r\n }\r\n },\r\n (error) => {\r\n console.error('HTTP Error:', error);\r\n }\r\n );\r\n }\r\n\r\n fetchDataFromAPI() {\r\n const apiConfig = this.api;\r\n this.formService.fetchDataFromExternalAPI(apiConfig).subscribe(\r\n (response) => {\r\n let data;\r\n if(apiConfig.pathToValue) {\r\n data = this.extractDataByPath(response, apiConfig.pathToValue);\r\n } else {\r\n data = response;\r\n }\r\n \r\n this.customOptions = data.map((item: any) => ({\r\n value: item[apiConfig.valueField.trim()],\r\n label: item[apiConfig.labelField.trim()],\r\n }));\r\n if (this.question.answer) {\r\n this.initializeCustomOption();\r\n }\r\n },\r\n (error) => {\r\n console.error('HTTP Error:', error);\r\n }\r\n );\r\n }\r\n\r\n extractDataByPath(data: any, path: string) {\r\n return path.split('.').reduce((acc, part) => acc && acc[part], data);\r\n }\r\n\r\n selectItems() {\r\n const valuesArray = this.selectedValue.map(item => `${item.label}|${item.value}`);\r\n this.question.answer = valuesArray; \r\n this.validationFailed = false;\r\n this.validationMessage = ''; \r\n if (this.selectedValue.length == 0 && this.required) {\r\n this.validationFailed = true;\r\n this.validationMessage = `This is a required question`;\r\n this.question.validation = false;\r\n } else if (\r\n this.selectedValue.length < this.minimumSelection ||\r\n this.selectedValue.length > this.maximumSelection\r\n ) {\r\n this.validationFailed = true;\r\n this.validationMessage = `selected options must be between ${this.minimumSelection} & ${this.maximumSelection}`;\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n if (this.question.childLogics) {\r\n this.updateChildLogics(this.question);\r\n }\r\n }\r\n\r\n updateChildLogics(question: any) {\r\n if (question.childLogics && Array.isArray(question.childLogics)) {\r\n question.childLogics.forEach((childLogic: any) => {\r\n if(this.selectionType=='SINGLE'){\r\n if(this.selectedValue.length==0){\r\n childLogic.show=false;\r\n }\r\n else{\r\n const selectedValue=this.selectedValue[0]?.value\r\n childLogic.showLogic = this.evaluateCondition(selectedValue, childLogic.condition, childLogic.inputValue);\r\n }\r\n \r\n }\r\n else if (this.selectionType === 'MULTIPLE') {\r\n if(this.selectedValue.length==0){\r\n childLogic.show=false;\r\n }\r\n else{\r\n const selectedValues = this.selectedValue.map((item: any) => item.value);\r\n childLogic.showLogic = this.evaluateMultipleCondition(selectedValues, childLogic.condition, childLogic.inputValue);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n evaluateCondition(answer: any[], condition: string, inputValue: any): boolean {\r\n switch (condition) {\r\n case \"!=\":\r\n return answer != inputValue;\r\n case \"=\":\r\n return answer == inputValue;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n evaluateMultipleCondition(answers: any[], condition: string, inputValue: any): boolean {\r\n const stringInputValue = Array.isArray(inputValue) ? inputValue.map(val => val.toString()) : inputValue.toString();\r\n switch (condition) {\r\n case \"!=\":\r\n return answers.every(answer => answer != stringInputValue);\r\n case \"=\":\r\n return answers.some(answer => answer == stringInputValue);\r\n case \"IN\":\r\n return answers.some(answer => stringInputValue.includes(answer));\r\n case \"NOT IN\":\r\n return answers.every(answer => !stringInputValue.includes(answer));\r\n default:\r\n return false;\r\n }\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <lib-dropdown\r\n [items]=\"customOptions\"\r\n [multiple]=\"selectionType === 'SINGLE' ? false : true\"\r\n (click)=\"selectItems()\"\r\n [(selectedItems)]=\"selectedValue\"\r\n ></lib-dropdown>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger mb-2\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\nexport interface Attachment {\r\n fileId: string;\r\n fileName: string;\r\n fileUrl: string;\r\n}\r\n\r\n@Component({\r\n selector: 'lib-file-picker-fields',\r\n templateUrl: './file-picker-fields.component.html',\r\n styleUrls: ['./file-picker-fields.component.scss'],\r\n})\r\nexport class FilePickerFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n multiFileUploads: boolean = true;\r\n fileTypes: string[] = [];\r\n fileSize: number = 0;\r\n fileSizeUnit: string = '';\r\n totalFileSize: number = 0;\r\n initialFileSize: number = 0;\r\n initialTotalSize: number = 0;\r\n dragAndDrop: boolean = false;\r\n previewUploadedFiles: boolean = true;\r\n validationFailed: boolean = false;\r\n validationMessage: string = '';\r\n attachments: Attachment[] = [];\r\n\r\n avatarPicker: boolean = false;\r\n files: any;\r\n\r\n handleFileTypeNotAllowed(fileType: string): void {\r\n this.validationFailed = true;\r\n this.validationMessage = 'File type not allowed';\r\n }\r\n\r\n handleFileSize(event: string): void {\r\n this.validationFailed = true;\r\n if (event === 'File size exceeds the limit') {\r\n this.validationMessage = `${event} ${this.initialFileSize} ${this.fileSizeUnit}`;\r\n } else if (event === 'Total size exceeds the limit') {\r\n this.validationMessage = `${event} ${this.initialTotalSize} ${this.fileSizeUnit}`;\r\n } else {\r\n this.validationMessage = event;\r\n }\r\n this.clearValidationMessageAfterTimeout();\r\n }\r\n\r\n clearValidationMessageAfterTimeout(): void {\r\n setTimeout(() => {\r\n this.validationMessage = '';\r\n this.validationFailed = false;\r\n }, 5000); // Timeout set to 5 seconds\r\n }\r\n\r\n\r\n handleFinalArray(fileType: any[]): void {\r\n const extractedData = fileType.map((item: any) => ({\r\n name: item._file.name,\r\n size: item._file.size,\r\n type: item._file.type,\r\n }));\r\n const jsonString = JSON.stringify(extractedData);\r\n this.question.answer = fileType;\r\n }\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.multiFileUploads =\r\n this.question.formElement.appearance.multiFileUploads;\r\n this.dragAndDrop = this.question.formElement.appearance.dragAndDrop;\r\n this.previewUploadedFiles =\r\n this.question.formElement.appearance.previewUploadedFiles;\r\n this.fileTypes = this.question.formElement.validation.fileTypes;\r\n this.fileSizeUnit = this.question.formElement.validation.fileSizeUnit;\r\n this.avatarPicker = this.question.formElement.appearance.avatarPicker;\r\n this.initialFileSize = this.question.formElement.validation?.fileSize;\r\n this.fileSize = this.convertToBytes(\r\n this.initialFileSize,\r\n this.fileSizeUnit\r\n );\r\n this.initialTotalSize = this.question.formElement.validation?.totalFileSize;\r\n this.totalFileSize = this.convertToBytes(\r\n this.initialTotalSize,\r\n this.fileSizeUnit\r\n );\r\n\r\n if (this.question.answer) {\r\n this.files = this.question.answer;\r\n }\r\n\r\n this.attachments = this.question?.attachments;\r\n }\r\n convertToBytes(size: number, unit: string): number {\r\n const units: { [key: string]: number } = {\r\n B: 1,\r\n KB: 1024,\r\n MB: 1024 * 1024,\r\n GB: 1024 * 1024 * 1024,\r\n };\r\n return size * (units[unit.toUpperCase()] || 1);\r\n }\r\n\r\n selectedFile!: File;\r\n selectedFiles: any = [];\r\n\r\n onFileChange(event: any) {\r\n const file: File = event.target.files[0];\r\n this.selectedFile = file;\r\n this.selectedFiles.push(this.selectedFile);\r\n this.question.answer = this.selectedFiles;\r\n }\r\n\r\n deleteFiles(event: any) {\r\n this.question.deleteFiles = event;\r\n this.question.attachments = this.question.attachments.filter(\r\n (item: any) => {\r\n return !event.includes(item.fileId);\r\n }\r\n );\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <lib-docUpload\r\n [totalSize]=\"totalFileSize\"\r\n [fileAllowed]=\"fileTypes\"\r\n [multiple]=\"multiFileUploads\"\r\n [fileSize]=\"fileSize\"\r\n [avatarPicker]=\"avatarPicker\"\r\n (fileTypeNotAllowed)=\"handleFileTypeNotAllowed($event)\"\r\n (fileSizeAllowed)=\"handleFileSize($event)\"\r\n (finalArray)=\"handleFinalArray($event)\"\r\n [attachments] = \"attachments\"\r\n (deleteFiles)=\"deleteFiles($event)\"\r\n [files]=\"files\"\r\n [dragAndDrop]=\"dragAndDrop\"\r\n ></lib-docUpload>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n</div>\r\n","import { Component, Input, ViewChild, ElementRef } from '@angular/core';\r\nimport { GoogleMap } from '@angular/google-maps';\r\n\r\n@Component({\r\n selector: 'lib-location-fields',\r\n templateUrl: './location-fields.component.html',\r\n styleUrls: ['./location-fields.component.scss'],\r\n})\r\nexport class LocationFieldsComponent {\r\n @Input() question: any = {};\r\n @ViewChild('mapSearchField')\r\n searchField!: ElementRef;\r\n @ViewChild(GoogleMap) map!: GoogleMap;\r\n\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n defaultZoomLevel: number = 0;\r\n setCurrentPosition: boolean = false;\r\n allowFullScreen: boolean = false;\r\n latitude: number = 0;\r\n longitude: number = 0;\r\n regionBoundary: boolean = false;\r\n region: string = '';\r\n showGoogleMap!: boolean;\r\n mapConfigurations: any = {};\r\n\r\n ngOnInit() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.defaultZoomLevel =\r\n this.question.formElement.appearance.defaultZoomLevel;\r\n this.setCurrentPosition =\r\n this.question.formElement.appearance.setCurrentPosition;\r\n this.allowFullScreen = this.question.formElement.appearance.allowFullScreen;\r\n this.latitude = this.question.formElement.appearance.latitude;\r\n this.longitude = this.question.formElement.appearance.longitude;\r\n this.regionBoundary = this.question.formElement.validation.regionBoundary;\r\n this.region = this.question.formElement.validation.region;\r\n this.mapConfigurations = {\r\n disableDefaultUI: true,\r\n fullscreenControl: this.allowFullScreen,\r\n zoomControl: true,\r\n };\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const searchBox = new google.maps.places.SearchBox(\r\n this.searchField.nativeElement\r\n );\r\n\r\n this.map.controls[google.maps.ControlPosition.TOP_CENTER].push(\r\n this.searchField.nativeElement\r\n );\r\n\r\n searchBox.addListener('places_changed', () => {\r\n const places = searchBox.getPlaces();\r\n if (places?.length === 0) {\r\n return;\r\n }\r\n\r\n const bounds = new google.maps.LatLngBounds();\r\n places?.forEach((place) => {\r\n if (!place.geometry || !place.geometry.location) {\r\n return;\r\n }\r\n\r\n if (place.geometry.viewport) {\r\n // Only geocodes have viewport.\r\n bounds.union(place.geometry.viewport);\r\n } else {\r\n bounds.extend(place.geometry.location);\r\n }\r\n });\r\n\r\n this.map.fitBounds(bounds);\r\n });\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"input-group\">\r\n <input\r\n type=\"text\"\r\n class=\"form-control location-input\"\r\n placeholder=\"Enter location\"\r\n #locationInput\r\n />\r\n </div>\r\n\r\n <input #mapSearchField class=\"my-map-search-field\" type=\"text\" />\r\n <google-map width=\"100%\" [options]=\"mapConfigurations\"></google-map>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-mail-fields',\r\n templateUrl: './mail-fields.component.html',\r\n styleUrls: ['./mail-fields.component.scss'],\r\n})\r\nexport class MailFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n placeholder: string = '';\r\n expectedDomains: string[] = [];\r\n regularExpression: string = '';\r\n email: string = '';\r\n validationFailed: boolean = false;\r\n validationMessage: string = '';\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.placeholder = this.question.formElement?.appearance?.placeholder || '';\r\n this.expectedDomains =\r\n this.question?.formElement?.validation?.expectedDomains\r\n ?.split(',')\r\n .map((domain: any) => domain.trim());\r\n this.regularExpression =\r\n this.question.formElement.validation.regularExpression;\r\n this.email = this.question?.answer \r\n }\r\n\r\n validateEmail() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n const enteredEmail = this.email?.trim().toLowerCase();\r\n if (this.required && !this.email) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.question.validation = false;\r\n } else if (this.expectedDomains) {\r\n const isValidEmail = this.expectedDomains?.some((domain) =>\r\n enteredEmail.endsWith(domain)\r\n );\r\n this.validationFailed = !isValidEmail;\r\n this.validationMessage = 'Please enter valid email address';\r\n if (this.validationFailed) {\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n }\r\n validateInput(event: any) {\r\n this.question.answer = event.target.value;\r\n this.validateEmail();\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <input\r\n type=\"email\"\r\n class=\"form-control mb-2 height\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"email\"\r\n (blur)=\"validateEmail()\"\r\n (input)=\"validateInput($event)\"\r\n [class.invalid]=\"validationFailed\"\r\n />\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DataService } from './data.service';\r\n\r\ninterface CountryData {\r\n value: string;\r\n label: string;\r\n image: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CountryService {\r\n private apiUrl: string = '';\r\n header: any = {};\r\n\r\n constructor(private http: HttpClient, private dataService: DataService) {\r\n this.dataService.apiUrl$.subscribe((data) => {\r\n this.apiUrl = data;\r\n });\r\n }\r\n\r\n loadCountryDetails(questionId: string, page: number, size: number, searchKey: string): Observable<any> {\r\n return this.http.get<any>(`${this.apiUrl}/api/public/json/country/${questionId}?page=${page}&size=${size}&searchKey=${searchKey}`);\r\n }\r\n\r\n processCountryDetails(\r\n data: any[],\r\n displayFlag: boolean,\r\n displayCode: boolean,\r\n showCountryName: boolean\r\n ): CountryData[] {\r\n const countryDetails: CountryData[] = [];\r\n\r\n data.forEach((country) => {\r\n const name = showCountryName ? country.name || '' : '';\r\n let flag = '';\r\n if (displayFlag && country.flag) {\r\n flag = country.flag;\r\n }\r\n\r\n if (\r\n displayCode &&\r\n country.isd &&\r\n country.isd.root &&\r\n country.isd.suffixes?.length > 0\r\n ) {\r\n country.isd.suffixes.forEach((suffix: string) => {\r\n const isdCode = `${country.isd.root}${suffix}`;\r\n countryDetails.push({\r\n value: isdCode,\r\n label: `${name} ${isdCode}`,\r\n image: flag,\r\n });\r\n });\r\n } else if (displayCode) {\r\n countryDetails.push({\r\n value: name,\r\n label: country.isd?.root || '',\r\n image: flag,\r\n });\r\n } else if (!displayCode && !displayFlag) {\r\n countryDetails.push({\r\n value: name,\r\n label: '',\r\n image: '',\r\n });\r\n }\r\n });\r\n\r\n return countryDetails;\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output, OnInit } from '@angular/core';\r\nimport { CountryService } from '../../services/countryService';\r\n\r\ninterface CountryData {\r\n value: string;\r\n label: string;\r\n image: string;\r\n}\r\n\r\ninterface filteredCountry {\r\n name: string;\r\n flag: string;\r\n isd: {};\r\n languages: {};\r\n}\r\n\r\n@Component({\r\n selector: 'lib-mobile-fields',\r\n templateUrl: './mobile-fields.component.html',\r\n styleUrls: ['./mobile-fields.component.scss'],\r\n})\r\nexport class MobileFieldsComponent implements OnInit {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n placeholder: string = '';\r\n displayCountryCode: boolean = true;\r\n displayFlag: boolean = true;\r\n displayCode: boolean = true;\r\n showCountryName: boolean = true;\r\n beautifyNumbers: boolean = true;\r\n countryWiseValidation: boolean = true;\r\n countryDetails: CountryData[] = [];\r\n selectedCountry: CountryData[] = [];\r\n validationFailed: boolean = false;\r\n validationMessage: string = '';\r\n mobileNumber: string = '';\r\n filteredCountry: filteredCountry[] = [];\r\n questionId: string = '';\r\n currentPage: number = 0;\r\n size: number = 30;\r\n totalPages: number = 0;\r\n searchKey: string = '';\r\n lastPage:boolean=false;\r\n isFirstPage: boolean = false;\r\n constructor(private countryService: CountryService) { }\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.placeholder = this.question.formElement.appearance.placeholder;\r\n this.displayCountryCode =\r\n this.question.formElement.appearance.displayCountryCode;\r\n this.displayFlag = this.question.formElement.appearance.displayFlag;\r\n this.displayCode = this.question.formElement.appearance.displayCode;\r\n this.showCountryName = this.question.formElement.appearance.showCountryName;\r\n this.beautifyNumbers = this.question.formElement.appearance.beautifyNumbers;\r\n this.countryWiseValidation =\r\n this.question.formElement.validation.countryWiseValidation;\r\n this.questionId = this.question.id;\r\n this.loadCountry(this.questionId, this.currentPage, this.size, this.searchKey);\r\n }\r\n\r\n\r\n initializeAnswer() {\r\n const [countryCode, mobileNumber] = this.question?.answer?.split(' ');\r\n this.mobileNumber = mobileNumber || '';\r\n\r\n const matchedCountry = this.countryDetails.find(country => country.value === countryCode);\r\n if (matchedCountry) {\r\n this.selectedCountry.push(matchedCountry);\r\n } \r\n }\r\n\r\n onCountryChange() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n this.updateAnswer();\r\n }\r\n\r\n onMobileNumberChange() {\r\n this.updateAnswer();\r\n }\r\n\r\n updateAnswer() {\r\n if (this.selectedCountry.length > 0 && this.mobileNumber) {\r\n const countryCode = this.selectedCountry[0].value;\r\n this.question.answer = `${countryCode} ${this.mobileNumber}`;\r\n } else {\r\n this.question.answer = '';\r\n }\r\n }\r\n\r\n validateMobile() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n\r\n if (this.required && (!this.mobileNumber || this.selectedCountry.length === 0)) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n } else {\r\n this.updateAnswer();\r\n }\r\n }\r\n\r\n loadCountry(id: string, currentPage: number, size: number, searchKey: string) {\r\n this.countryService.loadCountryDetails(this.questionId, currentPage, size, searchKey).subscribe((data) => {\r\n if (this.totalPages === 0) {\r\n this.totalPages = data.result.totalPages;\r\n }\r\n this.lastPage=data.result.last;\r\n this.isFirstPage = data.result.first;\r\n\r\n let newCountries=this.countryService.processCountryDetails(\r\n data.result.content,\r\n this.displayFlag,\r\n this.displayCode,\r\n this.showCountryName\r\n )\r\n\r\n if (this.currentPage > 0) {\r\n this.countryDetails = [\r\n ...this.countryDetails,\r\n ...newCountries.filter(item => !this.countryDetails.some((existing: any) => existing.value === item.value))\r\n ];\r\n } else {\r\n this.countryDetails = [\r\n ...newCountries.filter(item => !this.countryDetails.some((existing: any) => existing.value === item.value)),\r\n ...this.countryDetails\r\n ];\r\n }\r\n\r\n\r\n // if (this.currentPage < this.totalPages - 1) {\r\n // this.currentPage++;\r\n // this.loadCountry(this.questionId, this.currentPage, this.size, this.searchKey);\r\n // }\r\n if (this.question.answer) {\r\n this.initializeAnswer();\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n getNextSetOfItems(event: any) {\r\n const element = event.target;\r\n if (!this.lastPage) {\r\n if (element.scrollHeight - element.scrollTop === element.clientHeight) {\r\n this.loadMoreData();\r\n }\r\n }\r\n if (!this.isFirstPage && element.scrollTop <= 150) {\r\n this.loadPreviousData();\r\n }\r\n }\r\n\r\n loadMoreData() {\r\n setTimeout(() => {\r\n this.currentPage++;\r\n if (this.currentPage >= 0) {\r\n this.loadCountry(this.questionId,this.currentPage, this.size, \"\");\r\n }\r\n }, 0);\r\n }\r\n\r\n loadPreviousData() {\r\n setTimeout(() => {\r\n this.currentPage--;\r\n if (this.currentPage >= 0) {\r\n this.loadCountry(this.questionId,this.currentPage, this.size, \"\");\r\n }\r\n }, 0);\r\n }\r\n\r\n search(searchTerm: any) {\r\n if (searchTerm == '') {\r\n this.loadCountry(this.questionId,this.currentPage, this.size, \"\");\r\n }\r\n else {\r\n this.countryDetails = []; \r\n this.loadCountry(this.questionId,this.currentPage, this.size, searchTerm);\r\n }\r\n }\r\n\r\n}\r\n\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"input-group mb-2\">\r\n <div class=\"col-xs-5 col-5 col-md-3 px-0 pe-2 ps-2\">\r\n <lib-dropdown\r\n [items]=\"countryDetails\"\r\n [multiple]=\"false\"\r\n [(selectedItems)]=\"selectedCountry\"\r\n (selectedItemsChange)=\"onCountryChange()\"\r\n (onDropdownScroll)=\"getNextSetOfItems($event)\"\r\n (onSearch)=\"search($event)\"\r\n ></lib-dropdown>\r\n </div>\r\n <input\r\n type=\"number\"\r\n class=\"form-control col-xs-7 col-7 col-md-9 height mobileField\"\r\n [placeholder]=\"placeholder\"\r\n aria-label=\"Mobile Number\"\r\n [class.invalid]=\"validationFailed\"\r\n (blur)=\"validateMobile()\"\r\n [(ngModel)]=\"mobileNumber\"\r\n (ngModelChange)=\"onMobileNumberChange()\"\r\n />\r\n </div>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { Logic } from '../../models/logic.model';\r\n\r\n@Component({\r\n selector: 'lib-number-fields',\r\n templateUrl: './number-fields.component.html',\r\n styleUrls: ['./number-fields.component.scss'],\r\n})\r\nexport class NumberFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n upDown!: boolean;\r\n allowNegativeValues!: boolean;\r\n placeholder: string = '';\r\n min!: number;\r\n max!: number;\r\n enteredNumber!: number;\r\n validationFailed: boolean = false;\r\n validationMessage: string = '';\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.upDown = this.question.formElement.appearance.upAndDownButton;\r\n this.allowNegativeValues =\r\n this.question.formElement.appearance.allowNegativeValues;\r\n this.placeholder = this.question.formElement?.appearance?.placeholder || '';\r\n this.min = this.question.formElement.validation.min;\r\n this.max = this.question.formElement.validation.max;\r\n this.enteredNumber = this.question?.answer;\r\n if (this.question.childLogics && this.question.answer) {\r\n this.updateChildLogics(this.question);\r\n }\r\n }\r\n validateNumber() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (this.required && !this.enteredNumber) {\r\n this.validationFailed = true;\r\n this.validationMessage = `Please enter a valid number`;\r\n this.question.validation = false;\r\n } else if (!this.allowNegativeValues && this.enteredNumber < 0) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'Please enter a positive number';\r\n this.question.validation = false;\r\n } else if (\r\n (this.min !== undefined && this.enteredNumber < this.min) ||\r\n (this.max !== undefined && this.enteredNumber > this.max)\r\n ) {\r\n this.validationFailed = true;\r\n\r\n // Construct appropriate validation message based on whether min, max, or both are provided\r\n if (this.min !== undefined && this.max !== undefined) {\r\n this.validationMessage = `Please enter a valid number between ${this.min} and ${this.max}`;\r\n } else if (this.min !== undefined) {\r\n this.validationMessage = `Please enter a number greater than or equal to ${this.min}`;\r\n } else if (this.max !== undefined) {\r\n this.validationMessage = `Please enter a number less than or equal to ${this.max}`;\r\n }\r\n\r\n this.question.validation = false;\r\n } else {\r\n this.question.validation = true;\r\n }\r\n if (this.question.childLogics) {\r\n this.updateChildLogics(this.question);\r\n }\r\n }\r\n\r\n validateInput(event: any) {\r\n this.question.answer = event.target.value;\r\n if (this.question.childLogics) {\r\n this.updateChildLogics(this.question);\r\n }\r\n }\r\n\r\n updateChildLogics(question: any) {\r\n if (question.childLogics && Array.isArray(question.childLogics)) {\r\n question.childLogics.forEach((childLogic: any) => {\r\n if (question.answer == '') {\r\n childLogic.showLogic = false;\r\n this.clearAnswer(childLogic);\r\n return;\r\n }\r\n if (\r\n this.evaluateCondition(\r\n question.answer,\r\n childLogic.condition,\r\n childLogic.inputValue\r\n )\r\n ) {\r\n childLogic.showLogic = true;\r\n } else {\r\n childLogic.showLogic = false;\r\n this.clearAnswer(childLogic);\r\n }\r\n });\r\n }\r\n }\r\n\r\n evaluateCondition(answer: any, condition: any, inputValue: any) {\r\n switch (condition) {\r\n case '>':\r\n return answer > Number(inputValue);\r\n case '<':\r\n return answer < Number(inputValue);\r\n case '>=':\r\n return answer >= Number(inputValue);\r\n case '<=':\r\n return answer <= Number(inputValue);\r\n case '=':\r\n return answer == inputValue;\r\n case '!=':\r\n return answer != inputValue;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n clearAnswer(childLogic: Logic) {\r\n childLogic.formElements.forEach((formElement: any) => {\r\n if (formElement.entityType == 'QUESTION') {\r\n formElement.element.answer = '';\r\n }\r\n });\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <input\r\n type=\"number\"\r\n class=\"form-control mb-2 height\"\r\n [placeholder]=\"placeholder\"\r\n [class.hide-spin-buttons]=\"!upDown\"\r\n (blur)=\"validateNumber()\"\r\n [(ngModel)]=\"enteredNumber\"\r\n [class.invalid]=\"validationFailed\"\r\n (input)=\"validateInput($event)\"\r\n [attr.min]=\"min\"\r\n [attr.max]=\"max\"\r\n />\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-password-fields',\r\n templateUrl: './password-fields.component.html',\r\n styleUrls: ['./password-fields.component.scss'],\r\n})\r\nexport class PasswordFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n confirmPassword!: boolean;\r\n displayStrength!: boolean;\r\n viewButton!: boolean;\r\n maxLength!: number;\r\n minLength!: number;\r\n requireLowercaseLetters!: boolean;\r\n requireUppercaseLetters!: boolean;\r\n requireNumbers!: boolean;\r\n requireSpecialCharacters!: boolean;\r\n allowedSpecialCharacters: string[] = [];\r\n validationMessage: string = '';\r\n cnfrmValidationMessage: string = '';\r\n validationFailed: boolean = false;\r\n validatedCnfrmPassword: boolean = false;\r\n enteredPassword: string = '';\r\n enteredCnfrmPassword: string = '';\r\n passwordStrength: number = 0;\r\n questionId:string='';\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.questionId=this.question.id;\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.confirmPassword = this.question.formElement.appearance.confirmPassword;\r\n this.displayStrength = this.question.formElement.appearance.displayStrong;\r\n this.viewButton = this.question.formElement.appearance.viewButton;\r\n this.maxLength = this.question.formElement.validation.maxLength;\r\n this.minLength = this.question.formElement.validation.minLength;\r\n this.requireLowercaseLetters =\r\n this.question.formElement.validation.requireLowercaseLetters;\r\n this.requireUppercaseLetters =\r\n this.question.formElement.validation.requireUppercaseLetters;\r\n this.requireNumbers = this.question.formElement.validation.requireNumbers;\r\n this.requireSpecialCharacters =\r\n this.question.formElement.validation.requireSpecialCharacters;\r\n if (this.requireSpecialCharacters) {\r\n this.allowedSpecialCharacters =\r\n this.question.formElement.validation.allowedSpecialCharacters\r\n .split(',')\r\n .map((char: any) => char.trim());\r\n }\r\n this.enteredPassword = this.question?.answer;\r\n }\r\n\r\n togglePasswordVisibility() {\r\n let passwordField = document.getElementById(\r\n 'passwordField'+this.questionId\r\n ) as HTMLInputElement;\r\n let eyeIcon = document.getElementById(\r\n 'passwordEyeIcon'+this.questionId\r\n ) as HTMLInputElement;\r\n\r\n if (passwordField.type === 'password') {\r\n passwordField.type = 'text';\r\n eyeIcon.classList.remove('bi-eye-fill');\r\n eyeIcon.classList.add('bi-eye-slash-fill');\r\n } else {\r\n passwordField.type = 'password';\r\n eyeIcon.classList.remove('bi-eye-slash-fill');\r\n eyeIcon.classList.add('bi-eye-fill');\r\n }\r\n }\r\n toggleCnfrmPasswordVisibility() {\r\n let passwordField = document.getElementById(\r\n 'cnfrmPasswordField'+this.questionId\r\n ) as HTMLInputElement;\r\n let eyeIcon = document.getElementById(\r\n 'CnfrmPasswordEyeIcon'+this.questionId\r\n ) as HTMLInputElement;\r\n\r\n if (passwordField.type === 'password') {\r\n passwordField.type = 'text';\r\n eyeIcon.classList.remove('bi-eye-fill');\r\n eyeIcon.classList.add('bi-eye-slash-fill');\r\n } else {\r\n passwordField.type = 'password';\r\n eyeIcon.classList.remove('bi-eye-slash-fill');\r\n eyeIcon.classList.add('bi-eye-fill');\r\n }\r\n }\r\n\r\n checkPasswordMatch() {\r\n this.validatedCnfrmPassword = false;\r\n this.cnfrmValidationMessage = '';\r\n if (this.required && this.confirmPassword && !this.enteredCnfrmPassword) {\r\n this.validatedCnfrmPassword = true;\r\n this.cnfrmValidationMessage = `Please enter a valid password`;\r\n this.question.validation = false;\r\n }\r\n else if (this.enteredPassword != this.enteredCnfrmPassword && this.confirmPassword) {\r\n this.validatedCnfrmPassword = true;\r\n this.cnfrmValidationMessage = 'Passwords do not match';\r\n this.question.validation = false;\r\n }\r\n else{\r\n this.question.validation = true;\r\n }\r\n this.validatePassword();\r\n }\r\n\r\n \r\n\r\n validatePassword() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (this.required && !this.enteredPassword) {\r\n this.validationFailed = true;\r\n this.validationMessage = `Please enter a valid password`;\r\n this.question.validation = false;\r\n } else if (\r\n this.requireLowercaseLetters ||\r\n this.requireUppercaseLetters ||\r\n this.requireNumbers ||\r\n this.requireSpecialCharacters ||\r\n this.minLength ||\r\n this.maxLength\r\n ) { \r\n const lowercaseRegex = /[a-z]/;\r\n const uppercaseRegex = /[A-Z]/;\r\n const numberRegex = /\\d/;\r\n const specialCharacterRegex = new RegExp(`[${this.allowedSpecialCharacters.join('')}]`);\r\n const otherSpecialCharacterRegex = new RegExp(`[^a-zA-Z0-9${this.allowedSpecialCharacters.join('')}]`);\r\n \r\n let lowerCaseValidate = lowercaseRegex.test(this.enteredPassword);\r\n let upperCaseValidate = uppercaseRegex.test(this.enteredPassword);\r\n let containsNumber = numberRegex.test(this.enteredPassword);\r\n let containsSpecialCharacter = specialCharacterRegex.test(this.enteredPassword);\r\n let containsOtherSpecialCharacter = otherSpecialCharacterRegex.test(this.enteredPassword);\r\n \r\n if (!lowerCaseValidate && this.requireLowercaseLetters) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'Password must contain at least one lowercase letter';\r\n this.question.validation = false;\r\n } else if (!upperCaseValidate && this.requireUppercaseLetters) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'Password must contain at least one uppercase letter';\r\n this.question.validation = false;\r\n } else if (!containsNumber && this.requireNumbers) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'Password must contain at least one number';\r\n this.question.validation = false;\r\n }else if (this.enteredPassword.length < this.minLength) {\r\n this.validationFailed = true;\r\n this.validationMessage = `Password must contain at least ${this.minLength} characters`;\r\n this.question.validation = false;\r\n } else if (this.enteredPassword.length > this.maxLength) {\r\n this.validationFailed = true;\r\n this.validationMessage = `Password must be less than ${this.maxLength} characters`;\r\n this.question.validation = false;\r\n } else if (!containsSpecialCharacter && this.allowedSpecialCharacters.length>0) {\r\n this.validationFailed = true;\r\n this.validationMessage = `Password must contain at least one special character from ${this.allowedSpecialCharacters}`;\r\n this.question.validation = false;\r\n } else if(containsOtherSpecialCharacter && this.allowedSpecialCharacters.length>0){\r\n this.validationFailed = true;\r\n this.validationMessage = 'Password contains an invalid special character';\r\n this.question.validation = false;\r\n } else if(this.confirmPassword){\r\n this.checkPasswordMatch();\r\n }\r\n else {\r\n this.question.validation = true;\r\n } \r\n } else { \r\n this.passwordStrength=this.calculateStrength(this.enteredPassword);\r\n this.question.validation = true;\r\n }\r\n this.passwordStrength = this.calculateStrength(this.enteredPassword)\r\n}\r\n\r\n validateInput(event:any){\r\n const sanitizedValue = event.target.value.replace(/\\s+/g, '');\r\n this.enteredPassword = sanitizedValue;\r\n this.question.answer=sanitizedValue;\r\n this.validatePassword(); \r\n }\r\n\r\n validateCnfrm(event:any){\r\n const sanitizedValue = event.target.value.replace(/\\s+/g, '');\r\n this.enteredCnfrmPassword = sanitizedValue;\r\n this.checkPasswordMatch();\r\n }\r\n\r\n calculateStrength(password:any) {\r\n const lengthStrength = Math.min(100, (password.length / 12) * 100); // Assume maximum length of 12 for full points\r\n const lowercaseStrength = /[a-z]/.test(password) ? 20 : 0;\r\n const uppercaseStrength = /[A-Z]/.test(password) ? 20 : 0;\r\n const numberStrength = /\\d/.test(password) ? 20 : 0;\r\n const specialCharacterStrength = /[!@#$%^&*(),.?\":{}|<>]/.test(password) ? 20 : 0; // Adjust this regex based on your allowed special characters\r\n \r\n return lengthStrength + lowercaseStrength + uppercaseStrength + numberStrength + specialCharacterStrength;\r\n }\r\n}\r\n\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"password-input-wrapper mb-2\">\r\n <div class=\"input-wrapper\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label [for]=\"'passwordField'+questionId\">{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <input\r\n type=\"password\"\r\n class=\"form-control mb-2 height\"\r\n [id]=\"'passwordField'+questionId \"\r\n (blur)=\"validatePassword()\"\r\n [(ngModel)]=\"enteredPassword\"\r\n [class.invalid]=\"validationFailed\"\r\n (input)=\"validateInput($event)\"\r\n />\r\n <button\r\n id=\"togglePasswordBtn\"\r\n class=\"toggle-password-btn\"\r\n (click)=\"togglePasswordVisibility()\"\r\n *ngIf=\"viewButton\"\r\n >\r\n <i class=\"bi bi-eye-fill\" [id]=\"'passwordEyeIcon'+questionId\"></i>\r\n </button>\r\n </div>\r\n <div class=\"password-strength-meter\" *ngIf=\"displayStrength\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n role=\"progressbar\"\r\n [style.width]=\"passwordStrength + '%'\"\r\n [class.bg-danger]=\"passwordStrength < 30\"\r\n [class.bg-warning]=\"passwordStrength >= 30 && passwordStrength < 70\"\r\n [class.bg-success]=\"passwordStrength >= 70\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger mb-2\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n\r\n <div class=\"cnfrmPasswordWrapper\" *ngIf=\"confirmPassword\">\r\n <label for=\"'cnfrmPasswordField'+questionId\">Confirm password</label>\r\n <input\r\n type=\"password\"\r\n class=\"form-control mb-2 height\"\r\n [id]=\"'cnfrmPasswordField'+questionId\"\r\n (blur)=\"checkPasswordMatch()\"\r\n [(ngModel)]=\"enteredCnfrmPassword\"\r\n [class.invalid]=\"validatedCnfrmPassword\"\r\n (input)=\"validateCnfrm($event)\"\r\n />\r\n <button\r\n id=\"toggleCnfrmPasswordBtn\"\r\n class=\"toggle-password-btn\"\r\n (click)=\"toggleCnfrmPasswordVisibility()\"\r\n *ngIf=\"viewButton\"\r\n >\r\n <i class=\"bi bi-eye-fill\" [id]=\"'CnfrmPasswordEyeIcon'+questionId\"></i>\r\n </button>\r\n </div>\r\n <div *ngIf=\"validatedCnfrmPassword\" class=\"text-danger\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ cnfrmValidationMessage }}\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormService } from '../../services/form.service';\r\n\r\n@Component({\r\n selector: 'lib-radio-button-fields',\r\n templateUrl: './radio-button-fields.component.html',\r\n styleUrls: ['./radio-button-fields.component.scss'],\r\n})\r\nexport class RadioButtonFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n color: string = '';\r\n minimumSelection: number = 0;\r\n maximumSelection: number = 0;\r\n optionType: string = '';\r\n lookupTable: string = '';\r\n customOptions: any[] = [];\r\n database: any = {};\r\n api: any = {};\r\n apiOptions: any[] = [];\r\n selectedOption: any;\r\n validationFailed!: boolean;\r\n validationMessage: string = '';\r\n\r\n constructor(private formService: FormService) { }\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.color = this.question.formElement.appearance.color;\r\n this.optionType = this.question.formElement.option.optionType;\r\n\r\n switch (this.optionType) {\r\n case 'OPTION':\r\n this.customOptions = this.question.formElement.option.customOptions;\r\n this.initializeOption();\r\n break;\r\n case 'LOOKUP':\r\n this.lookupTable = this.question.formElement.option.lookupTable;\r\n this.fetchDataFromLookup();\r\n break;\r\n case 'DATABASE':\r\n this.database = this.question.formElement.option.database;\r\n this.fetchDataFromDatabase();\r\n break;\r\n case 'API':\r\n this.api = this.question.formElement.option.api;\r\n this.fetchDataFromAPI();\r\n break;\r\n default:\r\n console.warn('Unknown option type:', this.optionType);\r\n }\r\n\r\n if(this.question.childLogics && this.question.answer){\r\n this.updateChildLogics(this.question)\r\n }\r\n }\r\n\r\n initializeOption() {\r\n if (this.question.answer) {\r\n const dataType = typeof this.customOptions[0]?.value;\r\n let convertedAnswer;\r\n\r\n switch (dataType) {\r\n case 'number':\r\n convertedAnswer = Number(this.question.answer);\r\n break;\r\n case 'boolean':\r\n convertedAnswer = (this.question.answer === 'true');\r\n break;\r\n case 'string':\r\n convertedAnswer = String(this.question.answer);\r\n break;\r\n default:\r\n convertedAnswer = this.question.answer;\r\n }\r\n this.selectedOption = convertedAnswer;\r\n }\r\n }\r\n\r\n fetchDataFromLookup() {\r\n this.formService.fetchDataFromLookup(this.lookupTable).subscribe(\r\n (response) => {\r\n this.customOptions = response.result.values.map(\r\n (item: { value: string; label: string }) => ({\r\n value: item.value,\r\n label: item.label,\r\n })\r\n );\r\n this.initializeOption();\r\n },\r\n (error) => {\r\n console.error('HTTP Error:', error);\r\n }\r\n );\r\n }\r\n\r\n fetchDataFromDatabase() {\r\n const transformedDatabase = this.transformDatabaseObject(this.database);\r\n this.formService.fetchDataFromDatabase(transformedDatabase).subscribe(\r\n (response) => {\r\n if (response.success) {\r\n this.customOptions = response.result.map(\r\n (item: { value: string; label: string }) => ({\r\n value: item.value,\r\n label: item.label,\r\n })\r\n );\r\n this.initializeOption();\r\n } else {\r\n console.error('Error fetching data from database:', response.message);\r\n }\r\n },\r\n (error) => {\r\n console.error('HTTP Error:', error);\r\n }\r\n );\r\n }\r\n\r\n transformDatabaseObject(database: any) {\r\n return {\r\n tableName: database.tableName,\r\n valueField: database.valueField,\r\n labelField: database.labelField,\r\n criteria: database.criteria.map((criteria: any) => ({\r\n field: criteria.field,\r\n valueSource:criteria?.valueSource,\r\n condition: criteria.condition,\r\n value: criteria.inputValue,\r\n logicalOperator: criteria.logicalOperator,\r\n })),\r\n };\r\n }\r\n\r\n fetchDataFromAPI() {\r\n const apiConfig = this.api;\r\n this.formService.fetchDataFromExternalAPI(apiConfig).subscribe(\r\n (response) => {\r\n let data;\r\n if(apiConfig.pathToValue) {\r\n data = this.extractDataByPath(response, apiConfig.pathToValue);\r\n } else {\r\n data = response;\r\n }\r\n \r\n this.customOptions = data.map((item: any) => ({\r\n value: item[apiConfig.valueField],\r\n label: item[apiConfig.labelField],\r\n }));\r\n this.initializeOption();\r\n },\r\n (error) => {\r\n console.error('HTTP Error:', error);\r\n }\r\n );\r\n }\r\n\r\n extractDataByPath(data: any, path: string) {\r\n return path.split('.').reduce((acc, part) => acc && acc[part], data);\r\n }\r\n\r\n validateInput() {\r\n this.question.answer = this.selectedOption;\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (this.required && !this.selectedOption) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n if (this.question.childLogics) {\r\n this.updateChildLogics(this.question);\r\n }\r\n }\r\n\r\n updateChildLogics(question: any) {\r\n if (question.childLogics && Array.isArray(question.childLogics)) {\r\n question.childLogics.forEach((childLogic: any) => {\r\n childLogic.showLogic = this.evaluateCondition(this.selectedOption, childLogic.condition, childLogic.inputValue);\r\n });\r\n }\r\n }\r\n\r\n evaluateCondition(answer: any, condition: string, inputValue: any): boolean {\r\n const stringInputValue = Array.isArray(inputValue) ? inputValue.map(val => val.toString()) : inputValue;\r\n\r\n switch (condition) {\r\n case \"!=\":\r\n return answer != stringInputValue;\r\n case \"=\":\r\n return answer == stringInputValue;\r\n case \"IN\":\r\n return stringInputValue.includes(answer);\r\n case \"NOT IN\":\r\n return !(stringInputValue.includes(answer))\r\n default:\r\n return false;\r\n }\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n\r\n <div class=\"checkboxField\" *ngFor=\"let option of customOptions\">\r\n <input\r\n class=\"formCheckbox mb-2\"\r\n type=\"radio\"\r\n [name]=\"question.id\"\r\n [id]=\"option.value\"\r\n [value]=\"option.value\"\r\n [style.accent-color]=\"color\"\r\n (blur)=\"validateInput()\"\r\n [(ngModel)]=\"selectedOption\"\r\n (ngModelChange)=\"validateInput()\"\r\n />\r\n <label\r\n class=\"formCheckLabel ms-2 me-2 mb-2\"\r\n [for]=\"option.value\"\r\n *ngIf=\"optionType == 'OPTION'\"\r\n >{{ option.value }}</label\r\n >\r\n <label\r\n class=\"formCheckLabel ms-2 me-2 mb-2\"\r\n [for]=\"option.value\"\r\n *ngIf=\"optionType == 'LOOKUP' || 'DATABASE' || 'API'\"\r\n >{{ option.label }}</label\r\n >\r\n </div>\r\n\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { AngularEditorConfig } from '@kolkov/angular-editor';\r\n\r\n@Component({\r\n selector: 'lib-rich-text-editor-fields',\r\n templateUrl: './rich-text-editor-fields.component.html',\r\n styleUrls: ['./rich-text-editor-fields.component.scss'],\r\n})\r\nexport class RichTextEditorFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n numberOfRows!: number;\r\n limitedCharacters: boolean = false;\r\n counts: number = 0;\r\n htmlContent: string = '';\r\n characterCount!: number;\r\n validationFailed: boolean = false;\r\n validationMessage: string = '';\r\n\r\n config: AngularEditorConfig = {\r\n editable: true,\r\n spellcheck: true,\r\n height: '15rem',\r\n minHeight: '5rem',\r\n translate: 'no',\r\n defaultParagraphSeparator: 'p',\r\n defaultFontName: 'Arial',\r\n toolbarHiddenButtons: [['bold']],\r\n customClasses: [\r\n {\r\n name: 'quote',\r\n class: 'quote',\r\n },\r\n {\r\n name: 'redText',\r\n class: 'redText',\r\n },\r\n {\r\n name: 'titleText',\r\n class: 'titleText',\r\n tag: 'h1',\r\n },\r\n ],\r\n };\r\n\r\n ngOnInit() {\r\n this.valueAssigned(); \r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.numberOfRows = this.question.formElement.appearance.numberOfRows;\r\n this.limitedCharacters =\r\n this.question.formElement.validation.limitedCharacters;\r\n this.counts = this.question.formElement.validation.count;\r\n this.numberOfRows = this.question.formElement.appearance.numberOfRows;\r\n this.limitedCharacters =\r\n this.question.formElement.validation.limitedCharacters;\r\n if (this.limitedCharacters) {\r\n this.characterCount = this.question.formElement.validation.count;\r\n }\r\n this.htmlContent = this.question?.answer;\r\n }\r\n\r\n validateEditor() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (!this.htmlContent && this.required) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n }\r\n }\r\n\r\n validateInput(event: any) {\r\n if (this.htmlContent.length >= this.characterCount) {\r\n this.htmlContent = this.htmlContent.substring(0, this.characterCount);\r\n }\r\n this.question.answer = this.htmlContent; \r\n }\r\n\r\n updateAnswer(content: string) {\r\n this.question.answer = content;\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <angular-editor\r\n [(ngModel)]=\"htmlContent\"\r\n [config]=\"config\"\r\n (input)=\"validateInput($event)\"\r\n (blur)=\"validateEditor()\"\r\n (ngModelChange)=\"updateAnswer($event)\"\r\n ></angular-editor>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-selection-matrix-fields',\r\n templateUrl: './selection-matrix-fields.component.html',\r\n styleUrls: ['./selection-matrix-fields.component.scss'],\r\n})\r\nexport class SelectionMatrixFieldsComponent {\r\n @Input() question: any = {};\r\n @Input() acceptedLanguage: string ='';\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n selectionMatrixColumn: string[] = [];\r\n selectionMatrixLabel: string[] = [];\r\n selectedOptions: string[] = [];\r\n validationFailed!:boolean;\r\n validationMessage:string='';\r\n minSelectionValue!:number;\r\n\r\n ngOnInit() {\r\n this.valueAssigned(); \r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.selectionMatrixColumn = this.question?.formElement?.selectionMatrixColumn;\r\n this.selectionMatrixLabel = this.question?.formElement?.selectionMatrixLabel;\r\n this.minSelectionValue= this.question?.formElement?.validation?.minSelectionValue;\r\n if(this.question.answer){\r\n this.selectedOptions=this.question.answer;\r\n }\r\n }\r\n\r\n onSelectionChange(rowIndex: number, value: string) {\r\n this.selectedOptions[rowIndex] = value;\r\n this.validateInput();\r\n }\r\n\r\n validateInput() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n this.question.answer=this.selectedOptions;\r\n if(this.required && this.selectedOptions.length==0){\r\n this.validationFailed=true;\r\n this.validationMessage='This is a required question';\r\n this.question.validation = false;\r\n }\r\n else if(this.selectedOptions.length<this.minSelectionValue){\r\n this.validationFailed = true;\r\n this.validationMessage = `selected options must be greater than ${this.minSelectionValue}`;\r\n this.question.validation = false;\r\n }\r\n else{\r\n this.question.validation = true;\r\n } \r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n\r\n <div [ngClass]=\"{ 'labelBorder-rtl': acceptedLanguage === 'ara' }\">\r\n <table class=\"selectionMatrix\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n <th\r\n class=\"text-center table-cell-wrap\"\r\n *ngFor=\"let column of selectionMatrixColumn\"\r\n >\r\n {{ column }}\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody class=\"table-group-divider\">\r\n <tr *ngFor=\"let label of selectionMatrixLabel; let rowIndex = index\">\r\n <td class=\"table-cell-wrap\">{{ label }}</td>\r\n <td\r\n *ngFor=\"let column of selectionMatrixColumn; let colIndex = index\"\r\n class=\"text-center\"\r\n >\r\n <input\r\n type=\"radio\"\r\n id=\"radio-{{ rowIndex }}-{{ colIndex }}\"\r\n name=\"row-{{ rowIndex }}\"\r\n class=\"selectionRadio\"\r\n [value]=\"label + '_' + column\"\r\n [(ngModel)]=\"selectedOptions[rowIndex]\"\r\n (ngModelChange)=\"\r\n onSelectionChange(rowIndex, label + '_' + column)\r\n \"\r\n />\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-signature-fields',\r\n templateUrl: './signature-fields.component.html',\r\n styleUrls: ['./signature-fields.component.scss'],\r\n})\r\nexport class SignatureFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n maxFileSize: number = 0;\r\n minFileSize: number = 0;\r\n\r\n ngOnInit() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.maxFileSize = this.question.formElement.validation.maxFileSize;\r\n this.minFileSize = this.question.formElement.validation.minFileSize;\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\r\n <div class=\"input-wrapper\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, Renderer2, ElementRef, EventEmitter, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-slider-fields',\r\n templateUrl: './slider-fields.component.html',\r\n styleUrls: ['./slider-fields.component.scss'],\r\n})\r\nexport class SliderFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n minValue: number = 0;\r\n maxValue: number = 0;\r\n stepValue: number = 0;\r\n changeSliderColor: boolean = false;\r\n sliderColor: string = '';\r\n validationFailed: boolean = false;\r\n validationMessage: string = '';\r\n\r\n selectedValue: number = 0;\r\n\r\n constructor(private renderer: Renderer2, private el: ElementRef) { }\r\n\r\n ngOnInit() {\r\n\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.minValue = this.question.formElement.appearance.minValue;\r\n this.maxValue = this.question.formElement.appearance.maxValue;\r\n this.stepValue = this.question.formElement.appearance.stepValue;\r\n this.changeSliderColor =\r\n this.question.formElement.appearance.changeSliderColor;\r\n\r\n if (this.changeSliderColor) {\r\n this.sliderColor = this.question.formElement.appearance.sliderColor;\r\n }\r\n\r\n if (this.question.answer && Object.keys(this.question.answer).length>0) {\r\n this.selectedValue = this.question?.answer;\r\n } else {\r\n this.selectedValue = this.minValue;\r\n }\r\n }\r\n\r\n\r\n validateInput(event: any) {\r\n this.question.answer = String(this.selectedValue);\r\n this.question.validation = true;\r\n }\r\n\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"sliderRow\">\r\n <div class=\"sliderLeft\">\r\n <mat-slider\r\n [min]=\"minValue\"\r\n [max]=\"maxValue\"\r\n [step]=\"stepValue\"\r\n [ngStyle]=\"{\r\n '--mdc-slider-active-track-color': changeSliderColor\r\n ? sliderColor\r\n : ''\r\n }\"\r\n >\r\n <input\r\n matSliderThumb\r\n [(ngModel)]=\"selectedValue\"\r\n (input)=\"validateInput($event)\"\r\n />\r\n </mat-slider>\r\n </div>\r\n <div class=\"sliderRight\">\r\n <label class=\"selected-count font-weight-bold\">{{ selectedValue }}</label>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { FormService } from '../../services/form.service';\r\nimport { DataService } from '../../services/data.service';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n@Component({\r\n selector: 'lib-terms-and-condition-fields',\r\n templateUrl: './terms-and-condition-fields.component.html',\r\n styleUrls: ['./terms-and-condition-fields.component.scss'],\r\n})\r\nexport class TermsAndConditionFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n fileDataUrl:any;\r\n private apiUrl: string = '';\r\n imgUrl:any\r\n header: any = {};\r\n visible:boolean=false;\r\n constructor(\r\n private formService: FormService,\r\n private http: HttpClient, \r\n private dataService: DataService\r\n ) {\r\n this.dataService.apiUrl$.subscribe((data) => {\r\n this.apiUrl = data;\r\n });\r\n }\r\n ngOnInit() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.fileDataUrl=this.question.formElement.termsAndConditionType.fileUrl\r\n this.question;\r\n this.count;\r\n }\r\n preview(): Observable<any> {\r\n const headers = new HttpHeaders({\r\n 'Content-Type': this.header.contentType,\r\n 'auth-user': this.header.authUser,\r\n });\r\n const body = {\r\n // Your request body content here\r\n };\r\n const options = {\r\n headers: headers,\r\n body: body,\r\n };\r\n const fileUrl =this.fileDataUrl;\r\n const encodedFileUrl = encodeURIComponent(fileUrl);\r\n const fullUrl = `?url=${encodedFileUrl}`;\r\n this.imgUrl= (this.apiUrl + `/api/cdn/preview${fullUrl}`);\r\n this.visible= true;\r\n return this.http.get<any>(this.apiUrl + `/api/cdn/preview${fullUrl}`, options);\r\n }\r\n closeModal() {\r\n this.visible = false;\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\r\n <div class=\"input-wrapper\">\r\n <div [innerHTML]=\"question.questionNumber\" ></div>\r\n &nbsp;&nbsp; <label (click)=\"preview()\">{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"modal1\" *ngIf=\"visible\">\r\n <div class=\"modal-content1\">\r\n <span class=\"close\" (click)=\"closeModal()\">&times;</span>\r\n <div class=\"imgContiner\">\r\n <img [src]=\"imgUrl\" alt=\"Image\">\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-text-area-fields',\r\n templateUrl: './text-area-fields.component.html',\r\n styleUrls: ['./text-area-fields.component.scss'],\r\n})\r\nexport class TextAreaFieldsComponent {\r\n @Input() question: any = {};\r\n answer: string = '';\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n numberOfRows!: number;\r\n limitedCharacters!: boolean;\r\n characterCount!: number;\r\n validationFailed: boolean = false;\r\n validationMessage: string = '';\r\n enteredText: string = '';\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.numberOfRows = this.question.formElement.appearance.numberOfRows;\r\n this.limitedCharacters =\r\n this.question.formElement.validation.limitedCharacters;\r\n if (this.limitedCharacters) {\r\n this.characterCount = this.question.formElement.validation.count;\r\n }\r\n this.enteredText = this.question?.answer\r\n }\r\n validateInput(event: any) {\r\n this.question.answer = event.target.value;\r\n this.validateTextarea();\r\n }\r\n validateTextarea() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (!this.enteredText && this.required) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <textarea\r\n class=\"form-control mb-2\"\r\n [rows]=\"numberOfRows\"\r\n (input)=\"validateInput($event)\"\r\n (blur)=\"validateTextarea()\"\r\n [(ngModel)]=\"enteredText\"\r\n [class.invalid]=\"validationFailed\"\r\n [maxlength]=\"characterCount\"\r\n ></textarea>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { Logic } from '../../models/logic.model';\r\n\r\n@Component({\r\n selector: 'lib-text-fields',\r\n templateUrl: './text-fields.component.html',\r\n styleUrls: ['./text-fields.component.scss'],\r\n})\r\nexport class TextFieldsComponent {\r\n @Input() question: any = {};\r\n answer: string = '';\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n placeholder: string = '';\r\n defaultValue: string = '';\r\n isBold!: boolean;\r\n isUnderline!: boolean;\r\n isItalics!: boolean;\r\n textAlign: string = '';\r\n font: string = '';\r\n fontSize: string = '';\r\n validationType: string = '';\r\n validation: string = '';\r\n regex: string = '';\r\n enteredText: string = '';\r\n validationFailed: boolean = false;\r\n validationMessage: string = '';\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question?.count;\r\n this.required = this.question?.required;\r\n this.hint = this.question?.hint;\r\n this.placeholder = this.question.formElement?.appearance?.placeholder || '';\r\n this.defaultValue = this.question.formElement.appearance?.defaultValue;\r\n this.enteredText=this.defaultValue;\r\n this.isBold = this.question.formElement.appearance?.bold;\r\n this.isItalics = this.question.formElement.appearance?.italics;\r\n this.isUnderline = this.question.formElement.appearance?.underline;\r\n this.textAlign = this.question.formElement.appearance?.textAlign;\r\n this.font = this.question.formElement.appearance?.font;\r\n this.fontSize = this.question.formElement.appearance?.fontSize;\r\n this.validationType = this.question.formElement.validation?.validationType;\r\n if (this.validationType == 'CUSTOM_VALIDATION') {\r\n this.validation = this.question.formElement.validation?.validation;\r\n } else if (this.validationType == 'REGULAR_EXPRESSION') {\r\n this.regex = this.question.formElement.validation?.regex;\r\n }\r\n\r\n if (\r\n this.question.answer !== null &&\r\n this.question.answer !== undefined &&\r\n ((typeof this.question.answer === 'string' &&\r\n this.question.answer.trim() !== '') ||\r\n (Array.isArray(this.question.answer) &&\r\n this.question.answer.length > 0) ||\r\n (typeof this.question.answer === 'object' &&\r\n Object.keys(this.question.answer).length > 0))\r\n ) {\r\n this.enteredText = this.question.answer;\r\n }\r\n if(this.question.childLogics && this.question.answer){\r\n this.updateChildLogics(this.question)\r\n }\r\n }\r\n\r\n validatetextField() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (this.required && !this.enteredText) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.question.validation = false;\r\n } else {\r\n this.question.validation = true;\r\n }\r\n if (this.question.childLogics) {\r\n this.updateChildLogics(this.question);\r\n } \r\n }\r\n\r\n validateInput(event: any) {\r\n let value = event.target.value;\r\n if (this.validation == 'Numbers only') {\r\n event.target.value = value?.replace(/\\D/g, '');\r\n } else if (this.validation == 'Alphanumeric') {\r\n event.target.value = value?.replace(/[^a-zA-Z0-9]/g, '');\r\n } else if (this.validationType == 'REGULAR_EXPRESSION' && this.regex) {\r\n event.target.value = value?.replace(this.regex, '');\r\n }\r\n this.question.answer = event.target.value;\r\n this.validatetextField();\r\n }\r\n\r\n updateChildLogics(question: any) {\r\n if (question.childLogics && Array.isArray(question.childLogics)) {\r\n question.childLogics.forEach((childLogic: any) => {\r\n if(this.enteredText==''){\r\n childLogic.showLogic=false;\r\n this.clearAnswer(childLogic);\r\n }\r\n if (this.evaluateCondition(this.enteredText, childLogic.condition, childLogic.inputValue)) {\r\n childLogic.showLogic = true;\r\n }\r\n\r\n else{\r\n childLogic.showLogic = false;\r\n this.clearAnswer(childLogic);\r\n }\r\n });\r\n }\r\n }\r\n\r\n evaluateCondition(answer: any, condition: string, inputValue: any): boolean {\r\n const stringInputValue = inputValue;\r\n\r\n switch (condition) {\r\n case '!=':\r\n return answer != inputValue;\r\n case '=':\r\n return answer == inputValue;\r\n case 'LIKE':\r\n return answer.includes(inputValue);\r\n case 'NOT LIKE':\r\n return !answer.includes(inputValue);\r\n case 'BEGIN WITH':\r\n return answer.startsWith(inputValue);\r\n case 'END WITH':\r\n return answer.endsWith(inputValue);\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n clearAnswer(childLogic:Logic){\r\n childLogic.formElements.forEach((formElement:any)=>{\r\n if(formElement.entityType == 'QUESTION'){ \r\n formElement.element.answer = '';\r\n }\r\n })\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div> &nbsp;&nbsp;\r\n <label>{{ question.question }}</label>&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div class=\"svg-wrapper mb-2 hintIcon\" [attr.data-title]=\"hint\" *ngIf=\"hint\">\r\n <svg class=\"hintSvg\" viewBox=\"0 0 30 30\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n \r\n <input\r\n type=\"text\"\r\n class=\"form-control mb-2 height\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"enteredText\"\r\n (blur)=\"validatetextField()\"\r\n (input)=\"validateInput($event)\"\r\n [class.invalid]=\"validationFailed\"\r\n />\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg class=\"validationSvg\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\" fill=\"#FF0000\" stroke=\"#FF0000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\r\n </svg>\r\n {{validationMessage}}</div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-toggle-switch-fields',\r\n templateUrl: './toggle-switch-fields.component.html',\r\n styleUrls: ['./toggle-switch-fields.component.scss'],\r\n})\r\nexport class ToggleSwitchFieldsComponent {\r\n @Input() question: any = {};\r\n @Input() acceptedLanguage: string ='';\r\n\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n labelOnValue: string = '';\r\n labelOffValue: string = '';\r\n labelOnColor: string = '';\r\n labelOffColor: string = '';\r\n toggleBackgroundColor: string = '';\r\n selectedValue : string ='';\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n getDirectionClass(): string {\r\n return this.acceptedLanguage === 'ara' ? 'direction-rtl' : 'direction-ltr';\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.labelOnValue = this.question.formElement.appearance.labelOnValue;\r\n this.labelOffValue = this.question.formElement.appearance.labelOffValue;\r\n this.labelOnColor = this.question.formElement.appearance.labelOnColor;\r\n this.labelOffColor = this.question.formElement.appearance.labelOffColor;\r\n \r\n if (!this.question.answer) {\r\n this.question.answer = this.labelOffValue;\r\n this.question.validation = true;\r\n this.selectedValue=this.labelOffValue;\r\n this.toggleBackgroundColor = this.labelOffColor;\r\n }\r\n if (this.question.answer) {\r\n if(this.question.answer===this.labelOnValue){\r\n this.selectedValue=this.labelOnValue;\r\n this.toggleBackgroundColor = this.labelOnColor;\r\n }\r\n else{\r\n this.selectedValue=this.labelOffValue;\r\n this.toggleBackgroundColor = this.labelOffColor;\r\n }\r\n \r\n this.question.validation = true;\r\n }\r\n }\r\n\r\n toggleSliderColor(event: any): void {\r\n let isChecked = event.target.checked; \r\n this.question.answer = isChecked ?this.labelOnValue:this.labelOffValue;\r\n this.question.validation = true;\r\n this.selectedValue=this.question.answer;\r\n this.toggleBackgroundColor = isChecked\r\n ? this.question.formElement.appearance.labelOnColor\r\n : this.question.formElement.appearance.labelOffColor;\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-3 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"mt-2\">\r\n <label class=\"switch\" [ngClass]=\"{'direction-rtl': acceptedLanguage === 'ara', 'direction-ltr': acceptedLanguage !== 'ara'}\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"togBtn\"\r\n (change)=\"toggleSliderColor($event)\"\r\n [checked]=\"selectedValue === labelOnValue\"\r\n />\r\n <div\r\n class=\"slider round\" [ngClass]=\"getDirectionClass()\"\r\n [ngStyle]=\"{ 'background-color': toggleBackgroundColor }\"\r\n >\r\n <span class=\"on action-btn-text\">{{ labelOnValue }}</span>\r\n <span class=\"off action-btn-text\">{{ labelOffValue }}</span>\r\n </div>\r\n </label>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-url-fields',\r\n templateUrl: './url-fields.component.html',\r\n styleUrls: ['./url-fields.component.scss'],\r\n})\r\nexport class UrlFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n placeholder: string = '';\r\n showPreviewButton!: boolean;\r\n enteredUrl: string = '';\r\n validationFailed: boolean = false;\r\n validationMessage: string = '';\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n handleClick() {\r\n let textFieldValue = (document.getElementById('textField') as HTMLInputElement).value.trim();\r\n\r\n if (!/^https?:\\/\\//i.test(textFieldValue)) {\r\n textFieldValue = 'http://' + textFieldValue;\r\n }\r\n\r\n window.open(textFieldValue, '_blank');\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.placeholder = this.question.formElement.appearance.placeholder;\r\n this.showPreviewButton =\r\n this.question.formElement.appearance.showPreviewButton;\r\n this.enteredUrl = this.question?.answer; \r\n }\r\n validateUrl() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (this.required && !this.enteredUrl) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n }\r\n\r\n validateInput(event: any) {\r\n this.validateUrl();\r\n this.question.answer = event.target.value;\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <div [innerHTML]=\"question.questionNumber\"></div>\r\n &nbsp;&nbsp; <label>{{ question.question }}</label\r\n >&nbsp;\r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"input-group\">\r\n <input\r\n id=\"textField\"\r\n type=\"text\"\r\n class=\"form-control col-11.5 rounded height\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"enteredUrl\"\r\n (blur)=\"validateUrl()\"\r\n (input)=\"validateInput($event)\"\r\n [class.invalid]=\"validationFailed\"\r\n />\r\n <div class=\"ps-2 pe-2\">\r\n <button\r\n *ngIf=\"showPreviewButton\"\r\n type=\"button\"\r\n class=\"btn col-.5 custom-button rounded d-flex justify-content-center align-items-center height\"\r\n (click)=\"handleClick()\"\r\n >\r\n <svg\r\n width=\"30\"\r\n height=\"30\"\r\n viewBox=\"0 0 30 30\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M4.99561 16.2503C4.99561 21.7754 9.47462 26.2544 14.9998 26.2544C20.5249 26.2544 25.0039 21.7754 25.0039 16.2503C25.0039 10.7251 20.5249 6.24609 14.9998 6.24609H6.24613\"\r\n stroke=\"#084FFF\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M9.99766 2.49219L6.24609 6.24375\"\r\n stroke=\"#084FFF\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M9.99766 9.99766L6.24609 6.24609\"\r\n stroke=\"#084FFF\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M17.7924 14.8125L14.3035 18.3015L12.2051 16.2106\"\r\n stroke=\"#084FFF\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-section-fields',\r\n templateUrl: './section-fields.component.html',\r\n styleUrls: ['./section-fields.component.scss']\r\n})\r\nexport class SectionFieldsComponent {\r\n @Input() section:any={};\r\n}\r\n","<div class=\"mb-4 px-3\">\r\n <p class=\"sectionTitle\">{{ section.title }}</p>\r\n <p [innerHTML]=\"section.description\" class=\"description\"></p>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-forth-child',\r\n templateUrl: './forth-child.component.html',\r\n styleUrls: ['./forth-child.component.scss']\r\n})\r\nexport class ForthChildComponent {\r\n @Input() childLogics: any = [];\r\n @Input() acceptedLanguage: string ='';\r\n @Input() answer!: string;\r\n}\r\n","<div *ngFor=\"let childLogic of childLogics\">\r\n <div *ngIf=\"childLogic.showLogic && answer\">\r\n <div *ngFor=\"let formElement of childLogic.formElements\">\r\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\r\n <lib-check-box-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'CHECK_BOX'\"\r\n [question]=\"formElement.element\"\r\n ></lib-check-box-fields>\r\n <lib-date-time-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'DATE_TIME'\"\r\n [question]=\"formElement.element\"\r\n ></lib-date-time-fields>\r\n <lib-drop-down-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'DROP_DOWN'\"\r\n [question]=\"formElement.element\"\r\n ></lib-drop-down-fields>\r\n <lib-file-picker-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'FILE_PICKER'\"\r\n [question]=\"formElement.element\"\r\n ></lib-file-picker-fields>\r\n <lib-location-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\r\n [question]=\"formElement.element\"\r\n ></lib-location-fields>\r\n \r\n <lib-mail-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mail-fields>\r\n <lib-mobile-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mobile-fields>\r\n <lib-number-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-number-fields>\r\n <lib-password-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-password-fields>\r\n <lib-radio-button-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'RADIO_BUTTON'\"\r\n [question]=\"formElement.element\"\r\n ></lib-radio-button-fields>\r\n <lib-rich-text-editor-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'RICH_TEXT_EDITOR'\"\r\n [question]=\"formElement.element\"\r\n ></lib-rich-text-editor-fields>\r\n <lib-selection-matrix-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SELECTION_MATRIX'\"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-selection-matrix-fields>\r\n <lib-signature-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SIGNATURE'\"\r\n [question]=\"formElement.element\"\r\n ></lib-signature-fields>\r\n <lib-slider-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\r\n [question]=\"formElement.element\"\r\n ></lib-slider-fields>\r\n <lib-terms-and-condition-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TERMS_AND_CONDITION'\"\r\n [question]=\"formElement.element\"\r\n ></lib-terms-and-condition-fields>\r\n <lib-text-area-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_AREA'\"\r\n [question]=\"formElement.element\"\r\n ></lib-text-area-fields>\r\n <lib-text-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\r\n [question]=\"formElement.element\"\r\n ></lib-text-fields>\r\n <lib-toggle-switch-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-toggle-switch-fields>\r\n <lib-url-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\r\n [question]=\"formElement.element\"\r\n ></lib-url-fields>\r\n </div>\r\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\r\n <lib-section-fields [section]=\"formElement.element\"></lib-section-fields>\r\n </div>\r\n <div *ngIf=\"formElement.entityType === 'SUBFORM'\">\r\n <!-- <lib-sub-form [subForm]=\"formElement.element\"></lib-sub-form> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-third-child',\r\n templateUrl: './third-child.component.html',\r\n styleUrls: ['./third-child.component.scss']\r\n})\r\nexport class ThirdChildComponent {\r\n @Input() childLogics: any = [];\r\n @Input() acceptedLanguage: string ='';\r\n @Input() answer!: string;\r\n}\r\n","<div *ngFor=\"let childLogic of childLogics\">\r\n <div *ngIf=\"childLogic.showLogic && answer\">\r\n <div *ngFor=\"let formElement of childLogic.formElements\">\r\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\r\n <lib-check-box-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'CHECK_BOX'\"\r\n [question]=\"formElement.element\"\r\n ></lib-check-box-fields>\r\n <lib-date-time-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'DATE_TIME'\"\r\n [question]=\"formElement.element\"\r\n ></lib-date-time-fields>\r\n <lib-drop-down-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'DROP_DOWN'\"\r\n [question]=\"formElement.element\"\r\n ></lib-drop-down-fields>\r\n <lib-file-picker-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'FILE_PICKER'\"\r\n [question]=\"formElement.element\"\r\n ></lib-file-picker-fields>\r\n <lib-location-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\r\n [question]=\"formElement.element\"\r\n ></lib-location-fields>\r\n \r\n <lib-mail-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mail-fields>\r\n <lib-mobile-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mobile-fields>\r\n <lib-number-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-number-fields>\r\n <lib-password-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-password-fields>\r\n <lib-radio-button-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'RADIO_BUTTON'\"\r\n [question]=\"formElement.element\"\r\n ></lib-radio-button-fields>\r\n <lib-rich-text-editor-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'RICH_TEXT_EDITOR'\"\r\n [question]=\"formElement.element\"\r\n ></lib-rich-text-editor-fields>\r\n <lib-selection-matrix-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SELECTION_MATRIX'\"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-selection-matrix-fields>\r\n <lib-signature-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SIGNATURE'\"\r\n [question]=\"formElement.element\"\r\n ></lib-signature-fields>\r\n <lib-slider-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\r\n [question]=\"formElement.element\"\r\n ></lib-slider-fields>\r\n <lib-terms-and-condition-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TERMS_AND_CONDITION'\"\r\n [question]=\"formElement.element\"\r\n ></lib-terms-and-condition-fields>\r\n <lib-text-area-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_AREA'\"\r\n [question]=\"formElement.element\"\r\n ></lib-text-area-fields>\r\n <lib-text-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\r\n [question]=\"formElement.element\"\r\n ></lib-text-fields>\r\n <lib-toggle-switch-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-toggle-switch-fields>\r\n <lib-url-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\r\n [question]=\"formElement.element\"\r\n ></lib-url-fields>\r\n <lib-forth-child *ngIf=\"formElement.element.childLogics\"\r\n [childLogics]=\"formElement.element.childLogics\"\r\n [answer]=\"formElement.element.answer\"\r\n [acceptedLanguage] = \"acceptedLanguage\"></lib-forth-child>\r\n </div>\r\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\r\n <lib-section-fields [section]=\"formElement.element\"></lib-section-fields>\r\n </div>\r\n <div *ngIf=\"formElement.entityType === 'SUBFORM'\">\r\n <!-- <lib-sub-form [subForm]=\"formElement.element\"></lib-sub-form> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-second-child',\r\n templateUrl: './second-child.component.html',\r\n styleUrls: ['./second-child.component.scss']\r\n})\r\nexport class SecondChildComponent {\r\n @Input() childLogics: any = [];\r\n @Input() acceptedLanguage: string ='';\r\n @Input() answer!: string;\r\n}\r\n","<div *ngFor=\"let childLogic of childLogics\">\r\n <div *ngIf=\"childLogic.showLogic && answer\">\r\n <div *ngFor=\"let formElement of childLogic.formElements\">\r\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\r\n <lib-check-box-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'CHECK_BOX'\"\r\n [question]=\"formElement.element\"\r\n ></lib-check-box-fields>\r\n <lib-date-time-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'DATE_TIME'\"\r\n [question]=\"formElement.element\"\r\n ></lib-date-time-fields>\r\n <lib-drop-down-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'DROP_DOWN'\"\r\n [question]=\"formElement.element\"\r\n ></lib-drop-down-fields>\r\n <lib-file-picker-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'FILE_PICKER'\"\r\n [question]=\"formElement.element\"\r\n ></lib-file-picker-fields>\r\n <lib-location-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\r\n [question]=\"formElement.element\"\r\n ></lib-location-fields>\r\n \r\n <lib-mail-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mail-fields>\r\n <lib-mobile-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mobile-fields>\r\n <lib-number-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-number-fields>\r\n <lib-password-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-password-fields>\r\n <lib-radio-button-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'RADIO_BUTTON'\"\r\n [question]=\"formElement.element\"\r\n ></lib-radio-button-fields>\r\n <lib-rich-text-editor-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'RICH_TEXT_EDITOR'\"\r\n [question]=\"formElement.element\"\r\n ></lib-rich-text-editor-fields>\r\n <lib-selection-matrix-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SELECTION_MATRIX'\"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-selection-matrix-fields>\r\n <lib-signature-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SIGNATURE'\"\r\n [question]=\"formElement.element\"\r\n ></lib-signature-fields>\r\n <lib-slider-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\r\n [question]=\"formElement.element\"\r\n ></lib-slider-fields>\r\n <lib-terms-and-condition-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TERMS_AND_CONDITION'\"\r\n [question]=\"formElement.element\"\r\n ></lib-terms-and-condition-fields>\r\n <lib-text-area-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_AREA'\"\r\n [question]=\"formElement.element\"\r\n ></lib-text-area-fields>\r\n <lib-text-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\r\n [question]=\"formElement.element\"\r\n ></lib-text-fields>\r\n <lib-toggle-switch-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-toggle-switch-fields>\r\n <lib-url-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\r\n [question]=\"formElement.element\"\r\n ></lib-url-fields>\r\n <lib-third-child *ngIf=\"formElement.element.childLogics\"\r\n [childLogics]=\"formElement.element.childLogics\"\r\n [answer]=\"formElement.element.answer\"\r\n [acceptedLanguage] = \"acceptedLanguage\"></lib-third-child>\r\n </div>\r\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\r\n <lib-section-fields [section]=\"formElement.element\"></lib-section-fields>\r\n </div>\r\n <div *ngIf=\"formElement.entityType === 'SUBFORM'\">\r\n <!-- <lib-sub-form [subForm]=\"formElement.element\"></lib-sub-form> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-first-child',\r\n templateUrl: './first-child.component.html',\r\n styleUrls: ['./first-child.component.scss']\r\n})\r\nexport class FirstChildComponent {\r\n @Input() childLogics: any = [];\r\n @Input() acceptedLanguage: string ='';\r\n @Input() answer!: string;\r\n\r\n ngOnInit() {\r\n }\r\n}\r\n","<div *ngFor=\"let childLogic of childLogics\">\r\n <div *ngIf=\"childLogic.showLogic && answer\">\r\n <div *ngFor=\"let formElement of childLogic.formElements\">\r\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\r\n <lib-check-box-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'CHECK_BOX'\"\r\n [question]=\"formElement.element\"\r\n ></lib-check-box-fields>\r\n <lib-date-time-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'DATE_TIME'\"\r\n [question]=\"formElement.element\"\r\n ></lib-date-time-fields>\r\n <lib-drop-down-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'DROP_DOWN'\"\r\n [question]=\"formElement.element\"\r\n ></lib-drop-down-fields>\r\n <lib-file-picker-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'FILE_PICKER'\"\r\n [question]=\"formElement.element\"\r\n ></lib-file-picker-fields>\r\n <lib-location-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\r\n [question]=\"formElement.element\"\r\n ></lib-location-fields>\r\n \r\n <lib-mail-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mail-fields>\r\n <lib-mobile-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mobile-fields>\r\n <lib-number-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-number-fields>\r\n <lib-password-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-password-fields>\r\n <lib-radio-button-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'RADIO_BUTTON'\"\r\n [question]=\"formElement.element\"\r\n ></lib-radio-button-fields>\r\n <lib-rich-text-editor-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'RICH_TEXT_EDITOR'\"\r\n [question]=\"formElement.element\"\r\n ></lib-rich-text-editor-fields>\r\n <lib-selection-matrix-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SELECTION_MATRIX'\"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-selection-matrix-fields>\r\n <lib-signature-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SIGNATURE'\"\r\n [question]=\"formElement.element\"\r\n ></lib-signature-fields>\r\n <lib-slider-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\r\n [question]=\"formElement.element\"\r\n ></lib-slider-fields>\r\n <lib-terms-and-condition-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TERMS_AND_CONDITION'\"\r\n [question]=\"formElement.element\"\r\n ></lib-terms-and-condition-fields>\r\n <lib-text-area-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_AREA'\"\r\n [question]=\"formElement.element\"\r\n ></lib-text-area-fields>\r\n <lib-text-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\r\n [question]=\"formElement.element\"\r\n ></lib-text-fields>\r\n <lib-toggle-switch-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-toggle-switch-fields>\r\n <lib-url-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\r\n [question]=\"formElement.element\"\r\n ></lib-url-fields>\r\n <lib-second-child *ngIf=\"formElement.element.childLogics\"\r\n [childLogics]=\"formElement.element.childLogics\"\r\n [answer]=\"formElement.element.answer\"\r\n [acceptedLanguage] = \"acceptedLanguage\"></lib-second-child>\r\n </div>\r\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\r\n <lib-section-fields [section]=\"formElement.element\"></lib-section-fields>\r\n </div>\r\n <div *ngIf=\"formElement.entityType === 'SUBFORM'\">\r\n <!-- <lib-sub-form [subForm]=\"formElement.element\"></lib-sub-form> -->\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n \r\n","import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'lib-question',\r\n templateUrl: './question.component.html',\r\n styleUrls: ['./question.component.scss']\r\n})\r\nexport class QuestionComponent {\r\n @Input() question: any = {};\r\n @Input() edit : boolean = false;\r\n @Input() acceptedLanguage: string ='';\r\n\r\n constructor(private cdr: ChangeDetectorRef) { }\r\n\r\n validations: any = [];\r\n @Input() currentPageIndex: number = 0;\r\n @Output() emitValidations = new EventEmitter<any>();\r\n handleValidation(validation: any) {\r\n this.validations.push(validation);\r\n this.emitValidations.emit(this.validations);\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<div>\r\n <lib-check-box-fields\r\n *ngIf=\"question.formElement.elementType === 'CHECK_BOX'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-check-box-fields>\r\n <lib-date-time-fields\r\n *ngIf=\"question.formElement.elementType === 'DATE_TIME'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-date-time-fields>\r\n <lib-drop-down-fields\r\n *ngIf=\"question.formElement.elementType === 'DROP_DOWN'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-drop-down-fields>\r\n <lib-file-picker-fields\r\n *ngIf=\"question.formElement.elementType === 'FILE_PICKER'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-file-picker-fields>\r\n <lib-location-fields\r\n *ngIf=\"question.formElement.elementType === 'LOCATION'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-location-fields>\r\n\r\n <lib-mail-fields\r\n *ngIf=\"question.formElement.elementType === 'EMAIL'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-mail-fields>\r\n <lib-mobile-fields\r\n *ngIf=\"question.formElement.elementType === 'MOBILE'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-mobile-fields>\r\n <lib-number-fields\r\n *ngIf=\"question.formElement.elementType === 'NUMBER'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-number-fields>\r\n <lib-password-fields\r\n *ngIf=\"question.formElement.elementType === 'PASSWORD'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-password-fields>\r\n <lib-radio-button-fields\r\n *ngIf=\"question.formElement.elementType === 'RADIO_BUTTON'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-radio-button-fields>\r\n <lib-rich-text-editor-fields\r\n *ngIf=\"question.formElement.elementType === 'RICH_TEXT_EDITOR'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-rich-text-editor-fields>\r\n <lib-selection-matrix-fields\r\n *ngIf=\"question.formElement.elementType === 'SELECTION_MATRIX'\"\r\n [question]=\"question\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n (validate)=\"handleValidation($event)\"></lib-selection-matrix-fields>\r\n <lib-signature-fields\r\n *ngIf=\"question.formElement.elementType === 'SIGNATURE'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-signature-fields>\r\n <lib-slider-fields\r\n *ngIf=\"question.formElement.elementType === 'SLIDER'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-slider-fields>\r\n <lib-terms-and-condition-fields\r\n *ngIf=\"question.formElement.elementType === 'TERMS_AND_CONDITION'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-terms-and-condition-fields>\r\n <lib-text-area-fields\r\n *ngIf=\"question.formElement.elementType === 'TEXT_AREA'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-text-area-fields>\r\n <lib-text-fields\r\n *ngIf=\"question.formElement.elementType === 'TEXT_BOX'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-text-fields>\r\n <lib-toggle-switch-fields\r\n *ngIf=\"question.formElement.elementType === 'TOGGLE_SWITCH'\"\r\n [question]=\"question\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n (validate)=\"handleValidation($event)\"></lib-toggle-switch-fields>\r\n <lib-url-fields\r\n *ngIf=\"question.formElement.elementType === 'URL'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-url-fields>\r\n <lib-first-child *ngIf=\"question.childLogics\"\r\n [childLogics]=\"question.childLogics\"\r\n [answer]=\"question.answer\"\r\n [acceptedLanguage] = \"acceptedLanguage\">\r\n </lib-first-child>\r\n</div>\r\n","import { Component, Inject, Input } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'lib-submission-modal',\r\n templateUrl: './submission-modal.component.html',\r\n styleUrls: ['./submission-modal.component.scss']\r\n})\r\nexport class SubmissionModalComponent {\r\n acceptedLanguage: string ='';\r\n\r\n subForm:any;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private dialogRef: MatDialogRef<SubmissionModalComponent>\r\n ) { }\r\n\r\n ngOnInit(){\r\n this.subForm = this.data.subForm;\r\n this.acceptedLanguage = this.data.acceptedLanguage;\r\n }\r\n\r\n closeModal() {\r\n this.clearModal();\r\n this.dialogRef.close();\r\n }\r\n\r\n saveSubmission(){\r\n this.dialogRef.close(this.subForm);\r\n }\r\n\r\n clearModal() {\r\n if (this.subForm && this.subForm.formElements) {\r\n this.subForm.formElements.forEach((formElement: any) => {\r\n this.clearFormElement(formElement);\r\n });\r\n }\r\n }\r\n\r\n clearFormElement(formElement: any) {\r\n if (formElement.entityType === 'QUESTION') {\r\n formElement.element.answer = ''; \r\n\r\n // Additional properties to clear if needed\r\n if (formElement.element.formElement) {\r\n if (formElement.element.formElement.elementType === 'FILE_PICKER') {\r\n formElement.element.answer = null; // or [] depending on how you store files\r\n } else {\r\n formElement.element.answer = '';\r\n }\r\n }\r\n\r\n if (formElement.element.childLogics) {\r\n formElement.element.childLogics.forEach((childLogic: any) => {\r\n childLogic.showLogic=false;\r\n childLogic.formElements.forEach((formElement:any)=>{\r\n this.clearFormElement(formElement);\r\n\r\n })\r\n });\r\n }\r\n } \r\n }\r\n}\r\n","<div class=\"mb-5\">\r\n <div class=\"modalHeader mb-4\">\r\n <div class=\"title-div\">\r\n <p class=\"title\">{{subForm.title}}</p>\r\n </div>\r\n <div class=\"header-btn\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" (click)=\"closeModal()\">\r\n <path d=\"M8 8L16 16\" stroke=\"#1D252D\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M16 8L8 16\" stroke=\"#1D252D\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> \r\n </div>\r\n </div>\r\n\r\n <div class=\"px-3\" *ngFor=\"let formElement of subForm.formElements\">\r\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\r\n <lib-check-box-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'CHECK_BOX'\"\r\n [question]=\"formElement.element\"\r\n ></lib-check-box-fields>\r\n <lib-date-time-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'DATE_TIME'\"\r\n [question]=\"formElement.element\"\r\n ></lib-date-time-fields>\r\n <lib-drop-down-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'DROP_DOWN'\"\r\n [question]=\"formElement.element\"\r\n ></lib-drop-down-fields>\r\n <lib-file-picker-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'FILE_PICKER'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-file-picker-fields>\r\n <lib-location-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\r\n [question]=\"formElement.element\"\r\n ></lib-location-fields>\r\n\r\n <lib-mail-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mail-fields>\r\n <lib-mobile-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mobile-fields>\r\n <lib-number-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-number-fields>\r\n <lib-password-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-password-fields>\r\n <lib-radio-button-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'RADIO_BUTTON'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-radio-button-fields>\r\n <lib-rich-text-editor-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'RICH_TEXT_EDITOR'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-rich-text-editor-fields>\r\n <lib-selection-matrix-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'SELECTION_MATRIX'\r\n \"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-selection-matrix-fields>\r\n <lib-signature-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SIGNATURE'\"\r\n [question]=\"formElement.element\"\r\n ></lib-signature-fields>\r\n <lib-slider-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\r\n [question]=\"formElement.element\"\r\n ></lib-slider-fields>\r\n <lib-terms-and-condition-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType ===\r\n 'TERMS_AND_CONDITION'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-terms-and-condition-fields>\r\n <lib-text-area-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_AREA'\"\r\n [question]=\"formElement.element\"\r\n ></lib-text-area-fields>\r\n <lib-text-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\r\n [question]=\"formElement.element\"\r\n ></lib-text-fields>\r\n <lib-toggle-switch-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\r\n \"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-toggle-switch-fields>\r\n <lib-url-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\r\n [question]=\"formElement.element\"\r\n ></lib-url-fields>\r\n <lib-first-child\r\n *ngIf=\"formElement.element.childLogics\"\r\n [childLogics]=\"formElement.element.childLogics\"\r\n ></lib-first-child>\r\n </div>\r\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\r\n <lib-section-fields\r\n [section]=\"formElement.element\"\r\n ></lib-section-fields>\r\n </div>\r\n </div>\r\n\r\n <div class=\"okBtn me-4 ms-4\">\r\n <button\r\n class=\"submitBtn ms-md-3 me-md-2 rounded-pill\"\r\n type=\"button\"\r\n (click)=\"saveSubmission()\">\r\n Ok\r\n </button>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\r\nimport { SubmissionModalComponent } from '../submission-modal/submission-modal.component';\r\nimport { Attachment } from '../../models/attachment.model';\r\n\r\ninterface Answer {\r\n questionId: string;\r\n answer?: any;\r\n answerId?: string;\r\n deleteFiles?: string[];\r\n attachments?: Attachment[];\r\n files?: any;\r\n isChild?: boolean;\r\n}\r\n\r\ninterface Submission {\r\n submissionId: string;\r\n answers: Answer[];\r\n}\r\n\r\n@Component({\r\n selector: 'lib-multiple-subform',\r\n templateUrl: './multiple-subform.component.html',\r\n styleUrls: ['./multiple-subform.component.scss'],\r\n})\r\nexport class MultipleSubformComponent {\r\n @Input() subForm: any = {};\r\n @Output() subFormChange = new EventEmitter<any>();\r\n @Input() acceptedLanguage: string ='';\r\n\r\n submissions: Submission[] = [];\r\n deletedSubmissions: string[] = [];\r\n displayedColumns: string[] = [];\r\n\r\n constructor(public dialog: MatDialog) {}\r\n\r\n ngOnInit() {\r\n if (this.subForm?.submissions) {\r\n this.submissions = this.subForm.submissions;\r\n this.subForm.deletedSubmissions = [];\r\n }\r\n this.initializeDisplayedColumns();\r\n }\r\n\r\n initializeDisplayedColumns() {\r\n this.displayedColumns = this.subForm.formElements.map((fe: any) => fe.element.question);\r\n this.displayedColumns.push('actions');\r\n }\r\n\r\n getAnswerByQuestionId(submission: Submission, questionId: string) {\r\n return submission.answers.find(answer => answer.questionId === questionId);\r\n }\r\n\r\n subFormSubmission(subForm: any) {\r\n const processFormElements = (formElements: any[], isChild: boolean = false): Answer[] => {\r\n const answers: Answer[] = [];\r\n \r\n formElements.forEach((formElement: any) => {\r\n const answer: Answer = {\r\n questionId: formElement.element.id,\r\n answer: formElement.element?.answer || '',\r\n files: formElement.element.formElement.elementType == 'FILE_PICKER' && formElement.element.answer\r\n ? formElement.element.answer\r\n : undefined,\r\n isChild: isChild\r\n };\r\n \r\n if (\r\n formElement.element.formElement.elementType == 'FILE_PICKER' &&\r\n formElement.element.answer\r\n ) {\r\n const fileNames = formElement.element.answer.map(\r\n (file: any) => file?._file.name\r\n );\r\n answer.answer = fileNames;\r\n }\r\n answers.push(answer);\r\n \r\n if (formElement.element.childLogics) {\r\n formElement.element.childLogics.forEach((logic: any) => {\r\n if(logic.showLogic){\r\n answers.push(...processFormElements(logic.formElements, true));\r\n logic.showLogic=false;\r\n }\r\n });\r\n }\r\n\r\n // formElement.element.answer = '';\r\n });\r\n return answers;\r\n };\r\n \r\n const answers = processFormElements(subForm.formElements);\r\n \r\n if (answers.length > 0) {\r\n const submission: Submission = {\r\n submissionId: '',\r\n answers: answers,\r\n };\r\n this.submissions.push(submission);\r\n this.submissions = [...this.submissions];\r\n this.updateSubFormWithSubmissions();\r\n }\r\n }\r\n \r\n\r\n editSubFormSubmission(index: number, submission: Submission) {\r\n const subForm = this.bindAnswers(this.subForm, submission);\r\n const dialogConfig = new MatDialogConfig();\r\n dialogConfig.position = { top: '5%' };\r\n dialogConfig.width = '100%';\r\n dialogConfig.data = {\r\n subForm: subForm,\r\n acceptedLanguage: this.acceptedLanguage\r\n };\r\n dialogConfig.hasBackdrop = true;\r\n dialogConfig.disableClose = true;\r\n dialogConfig.maxHeight = '80vh';\r\n const dialogRef = this.dialog.open(SubmissionModalComponent, dialogConfig);\r\n\r\n dialogRef.afterClosed().subscribe((result: any) => {\r\n if (result) {\r\n this.updateSubmission(result, index);\r\n }\r\n });\r\n }\r\n\r\n bindAnswers(subForm: any, submission: Submission): any {\r\n const bindElementAnswers = (formElements: any[], answers: Answer[]) => {\r\n formElements.forEach((formElement: any) => {\r\n const answer = answers.find(\r\n (a) => a.questionId === formElement.element.id\r\n );\r\n if (answer) {\r\n formElement.element.answer =\r\n formElement.element.formElement.elementType == 'FILE_PICKER'\r\n ? answer?.files\r\n : answer.answer;\r\n formElement.element.answerId = answer.answerId;\r\n formElement.element.attachments = answer.attachments;\r\n }\r\n if (formElement.element.childLogics) {\r\n formElement.element.childLogics.forEach((logic: any) => {\r\n bindElementAnswers(logic.formElements, answers);\r\n });\r\n }\r\n });\r\n };\r\n\r\n const updatedSubForm = { ...subForm };\r\n bindElementAnswers(updatedSubForm.formElements, submission.answers);\r\n return updatedSubForm;\r\n }\r\n\r\n deleteSubForm(index: number) {\r\n const submission = this.submissions[index];\r\n if (submission.submissionId) {\r\n this.deletedSubmissions.push(submission.submissionId);\r\n }\r\n this.submissions.splice(index, 1);\r\n this.submissions = [...this.submissions];\r\n this.updateSubFormWithSubmissions();\r\n }\r\n\r\n addNewSubmission() {\r\n const dialogConfig = new MatDialogConfig();\r\n dialogConfig.position = { top: '5%' };\r\n dialogConfig.width = '100%';\r\n dialogConfig.data = {\r\n subForm: this.subForm,\r\n acceptedLanguage: this.acceptedLanguage\r\n };\r\n dialogConfig.hasBackdrop = true;\r\n dialogConfig.disableClose = true;\r\n dialogConfig.maxHeight = '80vh';\r\n const dialogRef = this.dialog.open(SubmissionModalComponent, dialogConfig);\r\n \r\n dialogRef.afterClosed().subscribe((result: any) => {\r\n if (result) {\r\n const hasData = result.formElements.some((formElement: any) => {\r\n return formElement.element.answer && formElement.element.answer.length > 0;\r\n });\r\n \r\n if (hasData) {\r\n this.subForm = result;\r\n this.subFormSubmission(result);\r\n }\r\n }\r\n });\r\n }\r\n \r\n\r\n updateSubmission(result: any, index: number) {\r\n const processFormElements = (formElements: any[], answers: Answer[]) => {\r\n formElements.forEach((formElement: any) => {\r\n let answer: Answer = {\r\n questionId: formElement.element.id,\r\n answerId: formElement.element?.answerId || '',\r\n attachments: formElement.element.attachments || [],\r\n answer: [],\r\n files: [],\r\n deleteFiles: [],\r\n };\r\n \r\n if (answer.attachments) {\r\n answer.answer = answer.attachments.map(\r\n (attachment: Attachment) => attachment.fileName\r\n );\r\n }\r\n \r\n if (formElement.element.formElement.elementType === 'FILE_PICKER') {\r\n if (formElement.element?.deleteFiles) {\r\n answer.answer = [];\r\n formElement.element.deleteFiles.forEach((deletedId: string) => {\r\n answer.deleteFiles?.push(deletedId);\r\n if (answer.attachments) {\r\n answer.attachments = answer.attachments.filter(\r\n (attachment: Attachment) => {\r\n const fileName = attachment.fileName;\r\n if (attachment.fileId !== deletedId) {\r\n if (!answer.answer.includes(fileName)) {\r\n answer.answer.push(fileName);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n );\r\n }\r\n });\r\n }\r\n if (formElement.element.answer) {\r\n answer.files = formElement.element.answer;\r\n formElement.element.answer.forEach((file: any) => {\r\n const fileName = file._file?.name;\r\n let fileNamesArray = Array.isArray(answer.answer)\r\n ? answer.answer\r\n : [];\r\n if (!fileNamesArray.includes(fileName)) {\r\n fileNamesArray.push(fileName);\r\n }\r\n answer.answer = fileNamesArray;\r\n });\r\n }\r\n } else {\r\n answer = {\r\n questionId: formElement.element.id,\r\n answerId: formElement.element?.answerId || '',\r\n attachments: formElement.element.attachments,\r\n answer: formElement.element.answer,\r\n };\r\n }\r\n formElement.element.answer = '';\r\n answers.push(answer);\r\n \r\n if (formElement.element.childLogics) {\r\n formElement.element.childLogics.forEach((logic: any) => {\r\n if(logic.showLogic){\r\n processFormElements(logic.formElements, answers);\r\n }\r\n });\r\n }\r\n });\r\n };\r\n \r\n this.submissions[index].answers = [];\r\n processFormElements(result.formElements, this.submissions[index].answers);\r\n this.submissions = [...this.submissions];\r\n this.updateSubFormWithSubmissions();\r\n this.clearEmptyRows();\r\n } \r\n\r\n updateSubFormWithSubmissions() {\r\n this.subForm.submissions = this.submissions;\r\n this.subForm.deletedSubmissions = this.deletedSubmissions;\r\n this.subFormChange.emit(this.subForm);\r\n }\r\n\r\n clearEmptyRows() {\r\n const nonEmptySubmissions:Submission[] = [];\r\n const emptySubmissionIds:string[] = [];\r\n \r\n this.submissions.forEach(submission => {\r\n if (submission.answers.some(answer => answer.answer !== '')) {\r\n nonEmptySubmissions.push(submission);\r\n } else if (submission.submissionId) {\r\n emptySubmissionIds.push(submission.submissionId);\r\n }\r\n });\r\n \r\n this.submissions = nonEmptySubmissions;\r\n this.deletedSubmissions.push(...emptySubmissionIds);\r\n this.updateSubFormWithSubmissions();\r\n }\r\n \r\n}\r\n","<div class=\"example-container \" tabindex=\"0\">\r\n <div class=\"table-container\">\r\n <table mat-table [dataSource]=\"submissions\" class=\"mat-elevation-z8\">\r\n <ng-container *ngFor=\"let formElement of subForm.formElements\" [matColumnDef]=\"formElement.element.question\">\r\n <th mat-header-cell *matHeaderCellDef class=\"border border-1\">{{ formElement.element.question }}</th>\r\n <td mat-cell *matCellDef=\"let submission\" class=\"border border-1\" [ngClass]=\"{'hidden': getAnswerByQuestionId(submission, formElement.element.id)?.isChild}\">\r\n {{ getAnswerByQuestionId(submission, formElement.element.id)?.answer }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"actions\" stickyEnd>\r\n <th mat-header-cell *matHeaderCellDef class=\"border border-1\"> Actions </th>\r\n <td mat-cell *matCellDef=\"let submission; let i = index\" class=\"text-center border border-1\">\r\n\r\n <div>\r\n <button class=\"btn\" mat-icon-button [matMenuTriggerFor]=\"menu\" aria-label=\"Example icon-button with a menu\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button mat-menu-item (click)=\"editSubFormSubmission(i, submission)\">\r\n <svg width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" y=\"0.5\" width=\"28\" height=\"26.4737\" rx=\"5.5\" fill=\"white\" stroke=\"#D8D8D8\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.0009 19.0787H9.1582V16.2361C9.1582 15.9447 9.2739 15.6653 9.47999 15.4593L16.2224 8.71686C16.4284 8.5105 16.708 8.39453 16.9995 8.39453C17.2911 8.39453 17.5707 8.5105 17.7767 8.71686L19.5201 10.4603C19.7264 10.6663 19.8424 10.9458 19.8424 11.2374C19.8424 11.529 19.7264 11.8086 19.5201 12.0145L12.7777 18.757C12.5715 18.9628 12.2922 19.0785 12.0009 19.0787Z\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15.1704 10.3984L17.8415 13.0695\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </button>\r\n <button mat-menu-item (click)=\"deleteSubForm(i)\">\r\n <svg width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" y=\"0.5\" width=\"27.6402\" height=\"26.1328\" rx=\"5.5\" fill=\"white\" stroke=\"#D8D8D8\"/>\r\n <path d=\"M8.60449 9.20637H20.0354\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M19.2189 9.20703V17.7863C19.2189 18.6482 18.4881 19.3462 17.5859 19.3462H11.0539C10.1517 19.3462 9.4209 18.6482 9.4209 17.7863V9.20703\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M16.7696 6.67122H11.8706\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M12.6871 12.3242V16.2239\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15.9532 12.3242V16.2239\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n </table>\r\n </div>\r\n <div class=\"footer\">\r\n <div class=\"addNewBtn\" (click)=\"addNewSubmission()\">\r\n <svg width=\"15\" height=\"14\" viewBox=\"0 0 15 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.5556 13.2778H2.44444C1.64639 13.2778 1 12.6673 1 11.9136V2.3642C1 1.61048 1.64639 1 2.44444 1H12.5556C13.3536 1 14 1.61048 14 2.3642V11.9136C14 12.6673 13.3536 13.2778 12.5556 13.2778Z\" stroke=\"#D8D8D8\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M5.3335 7.50347H9.66683\" stroke=\"#084FFF\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M7.50005 5.33594V9.66927\" stroke=\"#084FFF\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <a class=\"ms-2 text-decoration-none\">Add New</a>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-sub-form',\r\n templateUrl: './sub-form.component.html',\r\n styleUrls: ['./sub-form.component.scss'],\r\n})\r\nexport class SubFormComponent implements OnInit {\r\n @Input() subForm: any = {};\r\n @Input() edit: boolean = false;\r\n @Output() subFormChange = new EventEmitter<any>();\r\n @Input() acceptedLanguage: string ='';\r\n\r\n\r\n ngOnInit() {\r\n if (this.subForm.subFormStructure == 'single') {\r\n this.bindAnswersToFormElements();\r\n }\r\n }\r\n\r\n bindAnswersToFormElements() {\r\n const bindAnswers = (formElements: any[], submissions: any[]) => {\r\n formElements.forEach((formElement: { entityType: string; element: any }) => {\r\n if (formElement.entityType === 'QUESTION') {\r\n const submission = submissions.find((sub: { answers: any[] }) =>\r\n sub.answers.some((ans: { questionId: any }) => ans.questionId === formElement.element.id)\r\n );\r\n\r\n if (submission) {\r\n const answer = submission.answers.find((ans: { questionId: any }) => ans.questionId === formElement.element.id);\r\n if (answer) {\r\n formElement.element.answer = answer.answer;\r\n formElement.element.answerId = answer.answerId;\r\n formElement.element.validation = true;\r\n formElement.element.attachments = answer.attachments;\r\n this.subForm.submissionId = submission.submissionId;\r\n }\r\n }\r\n\r\n if (formElement.element.childLogics) {\r\n formElement.element.childLogics.forEach((childLogic: { formElements: any[] }) => {\r\n bindAnswers(childLogic.formElements, submissions);\r\n });\r\n }\r\n }\r\n });\r\n };\r\n\r\n if (this.subForm && this.subForm.formElements && this.subForm.submissions) {\r\n bindAnswers(this.subForm.formElements, this.subForm.submissions);\r\n }\r\n }\r\n\r\n\r\n updateSubFormWithSubmissions(event: any) {\r\n this.subForm = event;\r\n this.subFormChange.emit(this.subForm);\r\n }\r\n}\r\n","<div class=\"outer-container mb-4 px-3\">\r\n <div class=\"body container pt-3 pb-3 px-3\">\r\n <div class=\"tab-content pt-4 pb-3 px-3\">\r\n <p class=\"sectionTitle\">{{ subForm.title }}</p>\r\n <p [innerHTML]=\"subForm.description\" class=\"description mb-5\"></p>\r\n\r\n <div *ngIf=\"subForm.subFormStructure == 'multiple'\">\r\n <lib-multiple-subform\r\n [subForm]=\"subForm\"\r\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\r\n [acceptedLanguage]=\"acceptedLanguage\"\r\n ></lib-multiple-subform>\r\n </div>\r\n <div *ngIf=\"subForm.subFormStructure == 'single'\">\r\n <div *ngFor=\"let formElement of subForm.formElements\">\r\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\r\n <lib-check-box-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'CHECK_BOX'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-check-box-fields>\r\n <lib-date-time-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'DATE_TIME'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-date-time-fields>\r\n <lib-drop-down-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'DROP_DOWN'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-drop-down-fields>\r\n <lib-file-picker-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'FILE_PICKER'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-file-picker-fields>\r\n <lib-location-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\r\n [question]=\"formElement.element\"\r\n ></lib-location-fields>\r\n\r\n <lib-mail-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mail-fields>\r\n <lib-mobile-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mobile-fields>\r\n <lib-number-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-number-fields>\r\n <lib-password-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-password-fields>\r\n <lib-radio-button-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'RADIO_BUTTON'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-radio-button-fields>\r\n <lib-rich-text-editor-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType ===\r\n 'RICH_TEXT_EDITOR'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-rich-text-editor-fields>\r\n <lib-selection-matrix-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType ===\r\n 'SELECTION_MATRIX'\r\n \"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-selection-matrix-fields>\r\n <lib-signature-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'SIGNATURE'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-signature-fields>\r\n <lib-slider-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\r\n [question]=\"formElement.element\"\r\n ></lib-slider-fields>\r\n <lib-terms-and-condition-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType ===\r\n 'TERMS_AND_CONDITION'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-terms-and-condition-fields>\r\n <lib-text-area-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'TEXT_AREA'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-text-area-fields>\r\n <lib-text-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\r\n [question]=\"formElement.element\"\r\n ></lib-text-fields>\r\n <lib-toggle-switch-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\r\n \"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage]=\"acceptedLanguage\"\r\n ></lib-toggle-switch-fields>\r\n <lib-url-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\r\n [question]=\"formElement.element\"\r\n ></lib-url-fields>\r\n <lib-first-child\r\n *ngIf=\"formElement.element.childLogics\"\r\n [childLogics]=\"formElement.element.childLogics\"\r\n ></lib-first-child>\r\n </div>\r\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\r\n <lib-section-fields\r\n [section]=\"formElement.element\"\r\n ></lib-section-fields>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-form-elements',\r\n templateUrl: './form-elements.component.html',\r\n styleUrls: ['./form-elements.component.scss'],\r\n})\r\nexport class FormElementsComponent {\r\n @Input() grid: any = {};\r\n @Input() currentPageIndex: number = 0;\r\n @Input() edit : boolean = false;\r\n @Input() acceptedLanguage: string ='';\r\n @Output() subFormChange = new EventEmitter<any>();\r\n\r\n\r\n updateSubFormWithSubmissions(event:any){\r\n this.subFormChange.emit(event);\r\n }\r\n}\r\n","<div *ngIf=\"grid.entityType === 'QUESTION'\">\r\n <lib-question [question]=\"grid?.element\"\r\n [currentPageIndex]=\"currentPageIndex\"\r\n [edit]=\"edit\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-question>\r\n</div>\r\n<div *ngIf=\"grid.entityType === 'SECTION'\">\r\n <lib-section-fields [section]=\"grid.element\"></lib-section-fields>\r\n</div>\r\n<div *ngIf=\"grid.entityType === 'SUBFORM'\">\r\n <lib-sub-form [subForm]=\"grid.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\r\n ></lib-sub-form>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-navigation-tabs',\r\n templateUrl: './navigation-tabs.component.html',\r\n styleUrls: ['./navigation-tabs.component.scss'],\r\n})\r\nexport class NavigationTabsComponent {\r\n @Input() pages: any[] = [];\r\n @Input() currentPageIndex: number = 0;\r\n @Output() pageChanged = new EventEmitter<number>();\r\n @Output() submitEmit: EventEmitter<any> = new EventEmitter<any>();\r\n @Input() edit : boolean = false;\r\n @Input() acceptedLanguage: string ='';\r\n @Output() subFormChange = new EventEmitter<any>();\r\n\r\n ngOnInit() {\r\n }\r\n\r\n updateSubFormWithSubmissions(event:any){\r\n this.subFormChange.emit(event);\r\n }\r\n\r\n\r\n setCurrentPage(index: number) {\r\n this.pageChanged.emit(index);\r\n }\r\n\r\n submitForm() {\r\n this.submitEmit.emit();\r\n }\r\n}\r\n","<div class=\"tab-inner-container\">\r\n <ul class=\"nav nav-tabs navTabs\" id=\"myTab\" role=\"tablist\">\r\n <li\r\n class=\"nav-item\"\r\n role=\"presentation\"\r\n *ngFor=\"let page of pages; let i = index\"\r\n [ngClass]=\"{'nav-item-ara': acceptedLanguage === 'ara', 'nav-item-default': acceptedLanguage !== 'ara'}\"\r\n >\r\n <button\r\n class=\"nav-link\"\r\n [title]=\"page.title\"\r\n data-bs-toggle=\"tooltip\" data-bs-placement=\"top\"\r\n data-bs-custom-class=\"custom-tooltip\"\r\n data-bs-title=\"This top tooltip is themed via CSS variables.\"\r\n [class.active]=\"i === currentPageIndex\"\r\n id=\"tab-{{ i }}\"\r\n [attr.data-bs-toggle]=\"'tab'\"\r\n [attr.data-bs-target]=\"'#content-' + i\"\r\n type=\"button\"\r\n role=\"tab\"\r\n [attr.aria-controls]=\"'content-' + i\"\r\n [attr.aria-selected]=\"i === 0\"\r\n (click)=\"setCurrentPage(i)\"\r\n >\r\n {{ page.title }}\r\n </button>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content pt-5 pb-3 px-1\">\r\n <div\r\n *ngFor=\"let page of pages; let i = index\"\r\n class=\"tab-pane fade\"\r\n [class.show]=\"i === 0\"\r\n [class.active]=\"i === 0\"\r\n id=\"content-{{ i }}\"\r\n role=\"tabpanel\"\r\n [attr.aria-labelledby]=\"'tab-' + i\"\r\n >\r\n <div *ngFor=\"let row of page.rows\">\r\n <div class=\"margin\">\r\n <div *ngFor=\"let grid of row.grid\">\r\n <lib-form-elements\r\n [grid]=\"grid\"\r\n [edit]=\"edit\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\r\n ></lib-form-elements>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"currentPageIndex == pages.length - 1\"\r\n class=\"footerButton d-flex justify-content-end me-4 ms-4\"\r\n >\r\n <button\r\n class=\"btn btn-primary rounded-pill\"\r\n type=\"button\"\r\n (click)=\"submitForm()\"\r\n >\r\n Submit\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-next-prev-navigation',\r\n templateUrl: './next-prev-navigation.component.html',\r\n styleUrls: ['./next-prev-navigation.component.scss']\r\n})\r\nexport class NextPrevNavigationComponent {\r\n\r\n @Input() currentPageIndex: number = 0;\r\n @Input() pages: any[] = [];\r\n @Input() previousPage: any = {};\r\n @Input() nextPage: any = {};\r\n @Input() currentPage: any = {};\r\n @Output() navigateNext = new EventEmitter<void>();\r\n @Output() navigatePrevious = new EventEmitter<void>();\r\n @Output() submitEmit: EventEmitter<any> = new EventEmitter<any>();\r\n @Input() edit: boolean = false;\r\n @Input() acceptedLanguage: string ='';\r\n @Output() subFormChange = new EventEmitter<any>();\r\n\r\n\r\n updateSubFormWithSubmissions(event: any) {\r\n this.subFormChange.emit(event);\r\n }\r\n\r\n onNavigateNext() {\r\n this.navigateNext.emit();\r\n }\r\n\r\n onNavigatePrevious() {\r\n this.navigatePrevious.emit();\r\n }\r\n\r\n submitForm() {\r\n this.submitEmit.emit();\r\n }\r\n}\r\n","<div class=\"pageTitleDiv\">\r\n <p class=\"pageTitle\">{{ currentPage.title }}</p>\r\n</div>\r\n<div class=\"button-inner-container rounded\">\r\n <div class=\"tab-content pt-5 pb-3 row\">\r\n <div *ngFor=\"let row of pages[currentPageIndex].rows\" class=\"marginSize\">\r\n <div *ngFor=\"let grid of row.grid\">\r\n <lib-form-elements\r\n [grid]=\"grid\"\r\n [currentPageIndex]=\"currentPageIndex\"\r\n [edit]=\"edit\"\r\n [acceptedLanguage]=\"acceptedLanguage\"\r\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\r\n ></lib-form-elements>\r\n </div>\r\n </div>\r\n <div class=\"footerButton\">\r\n <div\r\n class=\"prevButtonDiv\"\r\n [ngClass]=\"{ 'prevDirection-rtl': acceptedLanguage === 'ara' }\">\r\n <button\r\n class=\"me-md-2 rounded-pill navButton\"\r\n type=\"button\"\r\n (click)=\"onNavigatePrevious()\"\r\n *ngIf=\"0 < currentPageIndex\"\r\n >\r\n <ng-container *ngIf=\"acceptedLanguage === 'ara'; else defaultSvg\">\r\n <svg\r\n width=\"24\"\r\n height=\"24\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M19.4897 12.0117L4.49975 12.0117\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M13.486 6.02344L19.502 12.0004L13.486 17.9774\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </ng-container>\r\n <ng-template #defaultSvg>\r\n <svg\r\n width=\"24\"\r\n height=\"24\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M4.51025 11.9883L19.5003 11.9883\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M10.514 17.9766L4.49805 11.9996L10.514 6.02256\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </ng-template>\r\n Previous | {{ previousPage.title }}\r\n </button>\r\n </div>\r\n <div\r\n class=\"nextButtonDiv\"\r\n [ngClass]=\"{ 'nextDirection-rtl': acceptedLanguage === 'ara' }\"\r\n >\r\n <button\r\n class=\"md-2 rounded-pill navButton\"\r\n type=\"button\"\r\n (click)=\"onNavigateNext()\"\r\n *ngIf=\"currentPageIndex < pages.length - 1\"\r\n >\r\n Next | {{ nextPage.title }}\r\n <ng-container *ngIf=\"acceptedLanguage === 'ara'; else defaultSvg\">\r\n <svg\r\n width=\"24\"\r\n height=\"24\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M4.51025 11.9883L19.5003 11.9883\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M10.514 17.9766L4.49805 11.9996L10.514 6.02256\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </ng-container>\r\n <ng-template #defaultSvg>\r\n <svg\r\n width=\"24\"\r\n height=\"24\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M19.4897 12.0117L4.49975 12.0117\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M13.486 6.02344L19.502 12.0004L13.486 17.9774\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </ng-template>\r\n </button>\r\n <button\r\n class=\"submitBtn ms-md-2 me-md-2 rounded-pill\"\r\n type=\"button\"\r\n *ngIf=\"currentPageIndex == pages.length - 1\"\r\n (click)=\"submitForm()\"\r\n >\r\n Submit\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-submission-container',\r\n templateUrl: './submission-container.component.html',\r\n styleUrls: ['./submission-container.component.scss']\r\n})\r\nexport class SubmissionContainerComponent {\r\n @Input() parentQuestionAnswers:any;\r\n\r\n isImageUrl(url: string): boolean {\r\n return url.match(/\\.(jpeg|jpg|gif|png)$/) != null;\r\n }\r\n}\r\n","<div class=\"subModule\">\r\n <div class=\"submission-container\">\r\n <div *ngFor=\"let qa of parentQuestionAnswers\" class=\"submission-item\">\r\n <div class=\"key\">{{ qa.question }}</div>\r\n <div class=\"value\">\r\n <ng-container *ngIf=\"qa.elementType === 'FILE_PICKER'; else text\">\r\n <div class=\"files\" *ngFor=\"let attachment of qa.attachments\">\r\n <ng-container *ngIf=\"isImageUrl(attachment.fileName); else fileLink\">\r\n <img [src]=\"attachment.fileUrl\" alt=\"{{ attachment.fileName }}\" class=\"image\">\r\n </ng-container>\r\n <ng-template #fileLink>\r\n <p>{{ attachment.fileName }}</p>\r\n <a class=\"fileName\" [href]=\"attachment.fileUrl\" target=\"_blank\">\r\n <i class=\"bi bi-file-earmark\"></i>\r\n </a>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n <ng-template #text>\r\n <ng-container [ngSwitch]=\"qa.elementType\">\r\n <p *ngSwitchCase=\"'RICH_TEXT_EDITOR'\" [innerHTML]=\"qa.values\"></p>\r\n <p *ngSwitchCase=\"'DROP_DOWN'\">{{ qa.values.join(', ') }}</p>\r\n <p *ngSwitchCase=\"'SELECTION_MATRIX'\">{{ qa.values.join(', ') }}</p>\r\n <p *ngSwitchDefault>{{ qa.values }}</p>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n </div>","import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { FormService } from '../../services/form.service';\r\nimport * as mapper from '../../services/mapper.service';\r\nimport { PublicForm } from '../../models/publicForm.model';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Router } from '@angular/router';\r\nimport { DataService } from '../../services/data.service';\r\n\r\ninterface Answer {\r\n questionId: string;\r\n answer: any;\r\n answerId?: string;\r\n deleteFiles?: string[];\r\n}\r\n\r\ninterface Submission {\r\n submissionId: string;\r\n answers: Answer[];\r\n}\r\n\r\ninterface Form {\r\n formId: string;\r\n deletedSubmissions: any[];\r\n submissions: Submission[];\r\n}\r\n\r\ninterface QuestionAnswersWrapper {\r\n parentId:string;\r\n answers: Answer[];\r\n forms: Form[];\r\n}\r\n\r\n@Component({\r\n selector: 'lib-submit-form',\r\n templateUrl: './submit-form.component.html',\r\n styleUrls: ['./submit-form.component.scss'],\r\n})\r\nexport class SubmitFormComponent implements OnInit {\r\n question: PublicForm | null = null;\r\n @Input() moduleName: string = '';\r\n @Input() edit: boolean = false;\r\n @Input() submissionId: string = '';\r\n @Input() acceptedLanguage: string ='';\r\n @Output() submit: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n name: string = '';\r\n saveAutomatically: boolean = false;\r\n saveInterval: number = 0;\r\n customizeFont: boolean = false;\r\n fontFamily: string = '';\r\n fontSize: number = 0;\r\n enableDataExport: boolean = false;\r\n fileFormats: string[] = [];\r\n enableQuestionNumbering: boolean = false;\r\n questionNumbering: string = '';\r\n enableGoogleRecaptcha: boolean = false;\r\n googleRecaptchaKey: string = '';\r\n googleRecaptchaSecret: string = '';\r\n navigation: string = 'TAB';\r\n markAllQuestionsAsRequired: boolean = false;\r\n pages: any = [];\r\n currentPageIndex: number = 0;\r\n previousPage: any = {};\r\n currentPage: any = {};\r\n nextPage: any = {};\r\n lastTab: boolean = false;\r\n questionAnswers: QuestionAnswersWrapper = { parentId:'',answers: [], forms: [] };\r\n files: { questionId: string; file: any }[] = [];\r\n parentQuestions:any;\r\n submission:any={};\r\n parentQuestionAnswers:any;\r\n parentSubmissionId:string='';\r\n submissionInProgress:boolean=false;\r\n\r\n constructor(\r\n private formService: FormService,\r\n private toastr: ToastrService,\r\n private router: Router,\r\n private dataService: DataService\r\n ) {\r\n const navigation = this.router.getCurrentNavigation();\r\n this.submission= navigation?.extras.state?.['submission'] \r\n this.parentSubmissionId=this.submission?.id;\r\n this.parentQuestionAnswers=this.submission?.questionAnswers\r\n this.parentQuestions=navigation?.extras.state?.['parentQuestions'];\r\n this.dataService.setParentQuestions(this.parentQuestions);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['acceptedLanguage']) {\r\n this.currentPageIndex = 0;\r\n this.acceptedLanguage = changes['acceptedLanguage'].currentValue;\r\n this.getFormData();\r\n }\r\n }\r\n \r\n ngOnInit() {\r\n if (this.edit && this.submissionId) {\r\n this.getSubmittedFormData();\r\n } else {\r\n this.getFormData();\r\n }\r\n }\r\n\r\n getFormData() {\r\n this.formService.getQuestions(this.moduleName).subscribe((response) => {\r\n this.question = mapper.mapPublicFormToModel(response);\r\n this.assignQuestionProperties(this.question);\r\n });\r\n }\r\n\r\n getSubmittedFormData() {\r\n this.formService\r\n .getSubmittedForm(this.moduleName, this.submissionId)\r\n .subscribe((response) => {\r\n this.question = mapper.mapPublicFormToModel(response);\r\n this.assignQuestionProperties(this.question);\r\n });\r\n }\r\n\r\n assignQuestionProperties(question: PublicForm) {\r\n this.name = question.name;\r\n this.pages = question.pages;\r\n if(this.parentQuestions){\r\n this.parentQuestionAnswers=question?.questionAnswers;\r\n this.parentSubmissionId=question?.parentId;\r\n }\r\n this.currentPage = this.pages[0];\r\n this.nextPage = this.pages[1];\r\n }\r\n\r\n navigateToNextPage() {\r\n if (this.currentPageIndex < this.pages.length - 1) {\r\n if (this.markAllQuestionsAsRequired) {\r\n const currentPageData = this.pages[this.currentPageIndex];\r\n const validationResponse =\r\n this.validateRequiredQuestions(currentPageData);\r\n if (validationResponse.isValid) {\r\n this.previousPage = this.currentPage;\r\n this.currentPageIndex++;\r\n this.currentPage = this.pages[this.currentPageIndex];\r\n this.nextPage = this.pages[this.currentPageIndex + 1];\r\n } else {\r\n this.toastr.warning(validationResponse.message);\r\n }\r\n } else {\r\n this.previousPage = this.currentPage;\r\n this.currentPageIndex++;\r\n this.currentPage = this.pages[this.currentPageIndex];\r\n this.nextPage = this.pages[this.currentPageIndex + 1];\r\n }\r\n }\r\n }\r\n\r\n navigateToPreviousPage() {\r\n if (this.currentPageIndex > 0) {\r\n if (this.markAllQuestionsAsRequired) {\r\n const currentPageData = this.pages[this.currentPageIndex];\r\n const validationResponse =\r\n this.validateRequiredQuestions(currentPageData);\r\n if (validationResponse.isValid) {\r\n this.nextPage = this.currentPage;\r\n this.currentPageIndex--;\r\n this.currentPage = this.pages[this.currentPageIndex];\r\n this.previousPage = this.pages[this.currentPageIndex - 1];\r\n } else {\r\n this.toastr.warning(validationResponse.message);\r\n }\r\n } else {\r\n this.nextPage = this.currentPage;\r\n this.currentPageIndex--;\r\n this.currentPage = this.pages[this.currentPageIndex];\r\n this.previousPage = this.pages[this.currentPageIndex - 1];\r\n }\r\n }\r\n }\r\n\r\n setCurrentPage(index: number) {\r\n if (this.markAllQuestionsAsRequired) {\r\n const currentPageData = this.pages[this.currentPageIndex];\r\n const validationResponse =\r\n this.validateRequiredQuestions(currentPageData);\r\n if (validationResponse.isValid) {\r\n this.currentPageIndex = index;\r\n } else {\r\n this.toastr.warning(validationResponse.message);\r\n }\r\n } else {\r\n this.currentPageIndex = index;\r\n }\r\n }\r\n\r\n generateQuestionAnswers() {\r\n this.files = [];\r\n\r\n const extractQuestions = (\r\n formElements: any[],\r\n parentFormId: string | null = null,\r\n isInSubForm: boolean = false,\r\n subFormIndex: number = 0\r\n ): { answers: Answer[]; forms: Form[] } => {\r\n const questions: Answer[] = [];\r\n const forms: Form[] = [];\r\n\r\n formElements.forEach((element) => {\r\n if (element.entityType === 'QUESTION') {\r\n let baseQuestion: any;\r\n if (element.element.formElement.elementType === 'FILE_PICKER') {\r\n baseQuestion = {\r\n questionId: element.element.id,\r\n answer: '',\r\n };\r\n if (Array.isArray(element.element.answer)) {\r\n const questionId = isInSubForm\r\n ? `${parentFormId}_${subFormIndex}_${element.element.id}`\r\n : element.element.id;\r\n this.files.push({\r\n questionId: questionId,\r\n file: element.element.answer,\r\n });\r\n }\r\n } else {\r\n baseQuestion = {\r\n questionId: element.element.id,\r\n answer: element.element.answer,\r\n };\r\n }\r\n if (this.edit) {\r\n questions.push({\r\n ...baseQuestion,\r\n answerId: element.element.answerId || '',\r\n deleteFiles: element.element.deleteFiles || [],\r\n });\r\n } else {\r\n questions.push(baseQuestion);\r\n }\r\n\r\n if (element.element.childLogics) {\r\n for (let logic of element.element.childLogics) {\r\n if (logic.showLogic) {\r\n const result = extractQuestions(\r\n logic.formElements,\r\n parentFormId,\r\n isInSubForm,\r\n subFormIndex\r\n );\r\n questions.push(...result.answers);\r\n forms.push(...result.forms);\r\n }\r\n }\r\n }\r\n } else if (element.entityType === 'SUBFORM') {\r\n const subformId = element.element.id;\r\n const submissionId = element.element.submissionId;\r\n\r\n if (element.element.subFormStructure === 'single') {\r\n const subformQuestions = extractQuestions(\r\n element.element.formElements,\r\n subformId,\r\n true,\r\n forms.length\r\n );\r\n const subform: Form = {\r\n formId: subformId,\r\n deletedSubmissions: [],\r\n submissions: [\r\n {\r\n submissionId: submissionId,\r\n answers: subformQuestions.answers,\r\n },\r\n ],\r\n };\r\n forms.push(subform);\r\n } else if (element.element.subFormStructure === 'multiple') {\r\n const subformAnswers: Answer[] = [];\r\n const subformQuestions = extractQuestions(\r\n element.element.formElements,\r\n subformId,\r\n true,\r\n forms.length\r\n );\r\n const existingSubform = forms.find(\r\n (form) => form.formId === subformId\r\n );\r\n\r\n element.element?.submissions.forEach(\r\n (submission: any, index: number) => {\r\n submission.answers.forEach((answer: any) => {\r\n if (Array.isArray(answer.files)) {\r\n const questionId = `${subformId}_${index}_${answer.questionId}`;\r\n this.files.push({\r\n questionId: questionId,\r\n file: answer.files,\r\n });\r\n delete answer.files;\r\n }\r\n delete answer.attachments;\r\n });\r\n }\r\n );\r\n\r\n const subform: Form = {\r\n formId: subformId,\r\n deletedSubmissions: element.element.deletedSubmissions,\r\n submissions: element.element.submissions,\r\n };\r\n forms.push(subform);\r\n }\r\n }\r\n });\r\n return { answers: questions, forms: forms };\r\n };\r\n\r\n const processPages = (\r\n pages: any[]\r\n ): { answers: Answer[]; forms: Form[] } => {\r\n const questions: Answer[] = [];\r\n const forms: Form[] = [];\r\n\r\n pages.forEach((page) => {\r\n page.rows.forEach((row: any) => {\r\n const result = extractQuestions(row.grid);\r\n questions.push(...result.answers);\r\n forms.push(...result.forms);\r\n });\r\n });\r\n\r\n return { answers: questions, forms: forms };\r\n };\r\n\r\n const result = processPages(this.pages);\r\n\r\n this.questionAnswers = {\r\n parentId:'',\r\n answers: result.answers,\r\n forms: result.forms,\r\n };\r\n }\r\n\r\n submitForm() {\r\n if (this.submissionInProgress) {\r\n return;\r\n }\r\n \r\n this.submissionInProgress = true;\r\n \r\n let validationResponse = this.validateForm(this.pages);\r\n this.generateQuestionAnswers();\r\n if (validationResponse.isValid) {\r\n const formData = new FormData(); \r\n this.questionAnswers.parentId=this.parentSubmissionId;\r\n formData.append('json', JSON.stringify(this.questionAnswers));\r\n if (this.files.length > 0) {\r\n this.files.forEach((fileItem) => {\r\n fileItem.file.forEach((file: any) => {\r\n formData.append(fileItem.questionId, file._file);\r\n });\r\n });\r\n }\r\n const formServiceCall = this.edit && this.submissionId\r\n ? this.formService.updateForm(this.moduleName, this.submissionId, formData)\r\n : this.formService.submitForm(this.moduleName, formData);\r\n\r\n formServiceCall.subscribe({\r\n next:(response) => {\r\n this.toastr.success(this.edit ? 'Form updated successfully' : 'Form submitted successfully');\r\n this.submit.emit('success');\r\n this.submissionInProgress = false;\r\n },\r\n error:(error) => {\r\n this.toastr.error(error.error.message);\r\n this.submissionInProgress = false;\r\n }\r\n });\r\n } else {\r\n this.toastr.error(validationResponse.message);\r\n this.submissionInProgress = false;\r\n }\r\n }\r\n\r\n validateForm(jsonData: any): {\r\n isValid: boolean;\r\n message: string;\r\n pageIndex: number | 0;\r\n } {\r\n const validateQuestions = (\r\n formElements: any[]\r\n ): { isValid: boolean; message: string; pageIndex: number | 0 } => {\r\n for (let element of formElements) {\r\n if (element.entityType === 'QUESTION') {\r\n const required = element.element.required;\r\n const answer = element.element.answer;\r\n const validation = element.element.validation;\r\n if (element.element.formElement.elementType === 'FILE_PICKER') {\r\n const attachment = element.element.attachments;\r\n if (required) {\r\n if ((!answer || answer.length === 0) && attachment.length == 0) {\r\n return {\r\n isValid: false,\r\n message: `Form is invalid - Required file question ${element.element.questionNumber} has no files uploaded.`,\r\n pageIndex: 0,\r\n };\r\n }\r\n }\r\n } else {\r\n if (required) {\r\n if (!answer || Object.keys(answer).length === 0) {\r\n return {\r\n isValid: false,\r\n message: `Form is invalid - Question ${element.element.questionNumber} is required but no answer provided.`,\r\n pageIndex: 0,\r\n };\r\n } else if (!validation) {\r\n return {\r\n isValid: false,\r\n message: `Form is invalid - Question ${element.element.questionNumber} is required but validation is false.`,\r\n pageIndex: 0,\r\n };\r\n }\r\n } else if (!required && answer && Object.keys(answer).length > 0) {\r\n if (!validation) {\r\n return {\r\n isValid: false,\r\n message: `Form is invalid - Question ${element.element.questionNumber} is not required but answer provided with validation false.`,\r\n pageIndex: 0,\r\n };\r\n }\r\n }\r\n }\r\n if (element.element.childLogics) {\r\n for (let logic of element.element.childLogics) {\r\n if (logic.showLogic) {\r\n const result = validateQuestions(logic.formElements);\r\n if (!result.isValid) return result;\r\n }\r\n }\r\n }\r\n } else if (element.entityType === 'SUBFORM') {\r\n if (element.element.formElements) {\r\n const result = validateQuestions(element.element.formElements);\r\n if (!result.isValid) return result;\r\n }\r\n }\r\n }\r\n return { isValid: true, message: '', pageIndex: 0 };\r\n };\r\n\r\n for (let pageIndex = 0; pageIndex < jsonData.length; pageIndex++) {\r\n const page = jsonData[pageIndex];\r\n for (let row of page.rows) {\r\n const result = validateQuestions(row.grid);\r\n if (!result.isValid) {\r\n return {\r\n isValid: false,\r\n message: `Page ${pageIndex + 1}: ${result.message}`,\r\n pageIndex: pageIndex,\r\n };\r\n }\r\n }\r\n }\r\n return {\r\n isValid: true,\r\n message: 'Form is valid.',\r\n pageIndex: 0,\r\n };\r\n }\r\n\r\n validateRequiredQuestions(page: any): { isValid: boolean; message: string } {\r\n const validateQuestions = (\r\n formElements: any[]\r\n ): { isValid: boolean; message: string } => {\r\n for (let element of formElements) {\r\n if (element.entityType === 'QUESTION') {\r\n const required = element.element.required;\r\n const answer = element.element.answer;\r\n if (element.element.formElement.elementType === 'FILE_PICKER') {\r\n if (required) {\r\n if (!answer || answer.length === 0) {\r\n return {\r\n isValid: false,\r\n message: `Required file question ${element.element.questionNumber} is not answered.`,\r\n };\r\n }\r\n }\r\n } else {\r\n if (required) {\r\n if (!answer || Object.keys(answer).length === 0) {\r\n return {\r\n isValid: false,\r\n message: `Required question ${element.element.questionNumber} is not answered.`,\r\n };\r\n }\r\n }\r\n }\r\n if (element.element.childLogics) {\r\n for (let logic of element.element.childLogics) {\r\n if (logic.showLogic) {\r\n const result = validateQuestions(logic.formElements);\r\n if (!result.isValid) return result;\r\n }\r\n }\r\n }\r\n } else if (element.entityType === 'SUBFORM') {\r\n if (element.element.formElements) {\r\n const result = validateQuestions(element.element.formElements);\r\n if (!result.isValid) return result;\r\n }\r\n }\r\n }\r\n return { isValid: true, message: 'All required questions are answered.' };\r\n };\r\n\r\n for (let row of page.rows) {\r\n const result = validateQuestions(row.grid);\r\n if (!result.isValid) {\r\n return result;\r\n }\r\n }\r\n return { isValid: true, message: 'All required questions are answered.' };\r\n }\r\n\r\n updateSubFormWithSubmissions(event: any) {\r\n this.updateSubForm(this.pages, event);\r\n }\r\n\r\n updateSubForm = (pages: any[], updatedSubForm: any) => {\r\n pages.forEach((page) => {\r\n page.rows.forEach((row: any) => {\r\n row.grid.forEach((element: any) => {\r\n if (\r\n element.entityType === 'SUBFORM' &&\r\n element.element.id === updatedSubForm.formId\r\n ) {\r\n // Update the existing subform with the new data\r\n element.element = updatedSubForm;\r\n } else if (\r\n element.entityType === 'SUBFORM' &&\r\n element.element.id !== updatedSubForm.formId\r\n ) {\r\n // Handle multiple subforms logic here if needed\r\n } else if (\r\n element.entityType === 'QUESTION' &&\r\n element.element.childLogics\r\n ) {\r\n // Recursively update child logics\r\n element.element.childLogics.forEach((logic: any) => {\r\n if (logic.showLogic) {\r\n this.updateSubForm(logic.formElements, updatedSubForm);\r\n }\r\n });\r\n }\r\n });\r\n });\r\n });\r\n };\r\n}\r\n","<div class=\"outer-container\">\r\n \r\n \r\n <div class=\"head container\">\r\n <lib-header [name]=\"name\"></lib-header>\r\n </div>\r\n <div class=\"body container\">\r\n \r\n <lib-submission-container [parentQuestionAnswers]=\"parentQuestionAnswers\"\r\n *ngIf=\"parentQuestionAnswers\"></lib-submission-container>\r\n \r\n <lib-navigation-tabs\r\n *ngIf=\"navigation == 'TAB'\"\r\n [pages]=\"pages\"\r\n [currentPageIndex]=\"currentPageIndex\"\r\n (pageChanged)=\"setCurrentPage($event)\"\r\n (submitEmit)=\"submitForm()\"\r\n [edit]=\"edit\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\r\n ></lib-navigation-tabs>\r\n <lib-next-prev-navigation\r\n *ngIf=\"navigation == 'NEXT_AND_PREVIOUS_BUTTON'\"\r\n [currentPageIndex]=\"currentPageIndex\"\r\n [pages]=\"pages\"\r\n [previousPage]=\"previousPage\"\r\n [currentPage]=\"currentPage\"\r\n [nextPage]=\"nextPage\"\r\n (navigateNext)=\"navigateToNextPage()\"\r\n (navigatePrevious)=\"navigateToPreviousPage()\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n (submitEmit)=\"submitForm()\"\r\n [edit]=\"edit\"\r\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\r\n ></lib-next-prev-navigation>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Inject, Input, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { DataService } from '../services/data.service';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { environment } from '../environment/environment';\r\n\r\n\r\n@Component({\r\n selector: 'lib-formSubmission',\r\n templateUrl: './form-submission.component.html',\r\n styleUrls: ['./form-submission.component.scss'],\r\n})\r\n\r\nexport class FormSubmissionComponent implements OnInit {\r\n @Input() formData: any = {};\r\n @Input() edit: boolean = false;\r\n @Input() submissionId: string = '';\r\n @Output() submitForm: EventEmitter<string> = new EventEmitter<string>();\r\n header:any;\r\n acceptedLanguage!: string;\r\n\r\n constructor(private dataService: DataService, @Inject(DOCUMENT) private document: Document) { }\r\n \r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['formData']) {\r\n this.dataService.setHeader(changes['formData'].currentValue?.headers);\r\n \r\n }\r\n }\r\n \r\n ngOnInit() {\r\n this.dataService.setApiUrl(this.formData.apiurl);\r\n this.dataService.setHeader(this.formData.headers);\r\n\r\n this.dataService.header$.subscribe((data) => {\r\n this.header = data;\r\n this.setHtmlDirection(this.header.acceptedLanguage);\r\n });\r\n }\r\n\r\n setHtmlDirection(language: string) {\r\n const htmlTag = this.document.getElementsByTagName('html')[0] as HTMLHtmlElement;\r\n\r\n if (language === 'ara' || language === 'ar') {\r\n environment.htmlDirection = 'rtl';\r\n } else {\r\n environment.htmlDirection = 'ltr';\r\n }\r\n\r\n htmlTag.dir = environment.htmlDirection; \r\n }\r\n\r\n submit(event: any) {\r\n this.submitForm.emit(event);\r\n }\r\n}\r\n","<lib-submit-form\r\n [moduleName]=\"formData.moduleName\"\r\n [submissionId]=\"submissionId\"\r\n [edit]=\"edit\"\r\n [acceptedLanguage] = \"formData.headers.acceptedLanguage\"\r\n (submit)=\"submit($event)\"\r\n></lib-submit-form>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CheckBoxFieldsComponent } from './check-box-fields/check-box-fields.component';\r\nimport { DateTimeFieldsComponent } from './date-time-fields/date-time-fields.component';\r\nimport { DropDownFieldsComponent } from './drop-down-fields/drop-down-fields.component';\r\nimport { FilePickerFieldsComponent } from './file-picker-fields/file-picker-fields.component';\r\nimport { LocationFieldsComponent } from './location-fields/location-fields.component';\r\nimport { RadioButtonFieldsComponent } from './radio-button-fields/radio-button-fields.component';\r\nimport { RichTextEditorFieldsComponent } from './rich-text-editor-fields/rich-text-editor-fields.component';\r\nimport { SelectionMatrixFieldsComponent } from './selection-matrix-fields/selection-matrix-fields.component';\r\nimport { SignatureFieldsComponent } from './signature-fields/signature-fields.component';\r\nimport { SliderFieldsComponent } from './slider-fields/slider-fields.component';\r\nimport { TermsAndConditionFieldsComponent } from './terms-and-condition-fields/terms-and-condition-fields.component';\r\nimport { TextAreaFieldsComponent } from './text-area-fields/text-area-fields.component';\r\nimport { TextFieldsComponent } from './text-fields/text-fields.component';\r\nimport { ToggleSwitchFieldsComponent } from './toggle-switch-fields/toggle-switch-fields.component';\r\nimport { UrlFieldsComponent } from './url-fields/url-fields.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MailFieldsComponent } from './mail-fields/mail-fields.component';\r\nimport { MobileFieldsComponent } from './mobile-fields/mobile-fields.component';\r\nimport { NumberFieldsComponent } from './number-fields/number-fields.component';\r\nimport { PasswordFieldsComponent } from './password-fields/password-fields.component';\r\nimport {MatSliderModule} from \"@angular/material/slider\";\r\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\n\r\n\r\nimport { GoogleMapsModule } from '@angular/google-maps';\r\nimport { DropdownModule } from '@piserve-tech/drop-down';\r\nimport { FilePreviewModule } from '@piserve-tech/file-preview';\r\nimport { SectionFieldsComponent } from './section-fields/section-fields.component';\r\nimport { DocUploadModule } from '@piserve-tech/file-upload';\r\nimport { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';\r\n\r\n\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n CheckBoxFieldsComponent,\r\n DateTimeFieldsComponent,\r\n DropDownFieldsComponent,\r\n FilePickerFieldsComponent,\r\n LocationFieldsComponent,\r\n RadioButtonFieldsComponent,\r\n RichTextEditorFieldsComponent,\r\n SelectionMatrixFieldsComponent,\r\n SignatureFieldsComponent,\r\n SliderFieldsComponent,\r\n TermsAndConditionFieldsComponent,\r\n TextAreaFieldsComponent,\r\n TextFieldsComponent,\r\n ToggleSwitchFieldsComponent,\r\n UrlFieldsComponent,\r\n MailFieldsComponent,\r\n MobileFieldsComponent,\r\n NumberFieldsComponent,\r\n PasswordFieldsComponent,\r\n SectionFieldsComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n MatSliderModule,\r\n BsDatepickerModule.forRoot(),\r\n DropdownModule,\r\n AngularEditorModule,\r\n DocUploadModule,\r\n GoogleMapsModule,\r\n FilePreviewModule,\r\n NgxMaterialTimepickerModule\r\n ],\r\n exports: [\r\n CheckBoxFieldsComponent,\r\n DateTimeFieldsComponent,\r\n DropDownFieldsComponent,\r\n FilePickerFieldsComponent,\r\n LocationFieldsComponent,\r\n MailFieldsComponent,\r\n MobileFieldsComponent,\r\n NumberFieldsComponent,\r\n PasswordFieldsComponent,\r\n RadioButtonFieldsComponent,\r\n RichTextEditorFieldsComponent,\r\n SelectionMatrixFieldsComponent,\r\n SignatureFieldsComponent,\r\n SliderFieldsComponent,\r\n TermsAndConditionFieldsComponent,\r\n TextAreaFieldsComponent,\r\n TextFieldsComponent,\r\n ToggleSwitchFieldsComponent,\r\n UrlFieldsComponent,\r\n SectionFieldsComponent\r\n\r\n ]\r\n})\r\nexport class FormFieldsModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FirstChildComponent } from './first-child/first-child.component';\r\nimport { SecondChildComponent } from './second-child/second-child.component';\r\nimport { ThirdChildComponent } from './third-child/third-child.component';\r\nimport { ForthChildComponent } from './forth-child/forth-child.component';\r\nimport { FormFieldsModule } from '../form-fields/form-fields.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [ FirstChildComponent, SecondChildComponent, ThirdChildComponent, ForthChildComponent],\r\n imports: [\r\n CommonModule,\r\n FormFieldsModule,\r\n ],\r\n exports:[FirstChildComponent, SecondChildComponent, ThirdChildComponent, ForthChildComponent]\r\n})\r\nexport class LogicModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { QuestionComponent } from './question/question.component';\r\nimport { LogicModule } from '../logic/logic.module';\r\nimport { FormFieldsModule } from '../form-fields/form-fields.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [QuestionComponent],\r\n imports: [\r\n CommonModule,\r\n LogicModule,\r\n FormFieldsModule,\r\n ],\r\n exports:[QuestionComponent]\r\n})\r\nexport class QuestionModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SubFormComponent } from './sub-form/sub-form.component';\r\nimport { FormFieldsModule } from '../form-fields/form-fields.module';\r\nimport { LogicModule } from '../logic/logic.module';\r\nimport { MultipleSubformComponent } from './multiple-subform/multiple-subform.component';\r\nimport { SubmissionModalComponent } from './submission-modal/submission-modal.component';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport {MatMenuModule} from '@angular/material/menu';\r\nimport {MatIconModule} from '@angular/material/icon';\r\n\r\n@NgModule({\r\n declarations: [SubFormComponent, MultipleSubformComponent, SubmissionModalComponent],\r\n imports: [\r\n CommonModule,\r\n FormFieldsModule,\r\n LogicModule,\r\n MatDialogModule,\r\n MatTableModule,\r\n MatMenuModule,\r\n MatIconModule\r\n ],\r\n exports:[SubFormComponent]\r\n})\r\nexport class SubFormModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormElementsComponent } from './form-elements/form-elements.component';\r\nimport { QuestionModule } from '../question/question.module';\r\nimport { FormFieldsModule } from '../form-fields/form-fields.module';\r\nimport { SubFormModule } from '../sub-form/sub-form.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [ FormElementsComponent],\r\n imports: [\r\n CommonModule,\r\n QuestionModule,\r\n FormFieldsModule,\r\n SubFormModule\r\n ],\r\n exports: [\r\n FormElementsComponent\r\n ]\r\n})\r\nexport class ElementTypeModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SubmitFormComponent } from './submit-form/submit-form.component';\r\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\r\nimport { HeaderComponent } from './header/header.component';\r\nimport { NavigationTabsComponent } from './navigation-tabs/navigation-tabs.component';\r\nimport { NextPrevNavigationComponent } from './next-prev-navigation/next-prev-navigation.component';\r\nimport { ElementTypeModule } from '../element-type/element-type.module';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { SubmissionContainerComponent } from './submission-container/submission-container.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n SubmitFormComponent,\r\n HeaderComponent,\r\n NavigationTabsComponent,\r\n NextPrevNavigationComponent,\r\n SubmissionContainerComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n BsDatepickerModule.forRoot(),\r\n ElementTypeModule,\r\n ToastrModule\r\n ],\r\n exports: [SubmitFormComponent, NextPrevNavigationComponent]\r\n})\r\nexport class FormSubmitModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { FormSubmissionComponent } from './form-submission.component';\r\n// import { DropdownModule } from '@piserve-tech/drop-down';\r\nimport { FilePreviewModule } from '@piserve-tech/file-preview';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { FormFieldsModule } from '../form-fields/form-fields.module';\r\nimport { FormSubmitModule } from '../form-submission/form-submission.module';\r\nimport { DropdownModule } from '@piserve-tech/drop-down';\r\nimport { ElementTypeModule } from '../element-type/element-type.module';\r\nimport { LogicModule } from '../logic/logic.module';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { DocUploadModule } from '@piserve-tech/file-upload';\r\n\r\n@NgModule({\r\n declarations: [FormSubmissionComponent],\r\n imports: [\r\n DropdownModule,\r\n FilePreviewModule,\r\n DocUploadModule,\r\n FormsModule,\r\n MatTabsModule,\r\n FormFieldsModule,\r\n FormSubmitModule,\r\n ElementTypeModule,\r\n LogicModule,\r\n ToastrModule.forRoot({\r\n positionClass: 'toast-bottom-left',\r\n }),\r\n ],\r\n exports: [FormSubmissionComponent],\r\n})\r\nexport class FormSubmissionModule {}\r\n","/*\r\n * Public API Surface of form-submission\r\n */\r\n\r\nexport * from './lib/form-submission.service';\r\nexport * from './lib/form-submission.component';\r\nexport * from './lib/form-submission.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.DataService","i1.FormService","i2","i1","i3","i1.CountryService","i4","i3.DataService","i2.CheckBoxFieldsComponent","i3.DateTimeFieldsComponent","i4.DropDownFieldsComponent","i5.FilePickerFieldsComponent","i6.LocationFieldsComponent","i7.MailFieldsComponent","i8.MobileFieldsComponent","i9.NumberFieldsComponent","i10.PasswordFieldsComponent","i11.RadioButtonFieldsComponent","i12.RichTextEditorFieldsComponent","i13.SelectionMatrixFieldsComponent","i14.SignatureFieldsComponent","i15.SliderFieldsComponent","i16.TermsAndConditionFieldsComponent","i17.TextAreaFieldsComponent","i18.TextFieldsComponent","i19.ToggleSwitchFieldsComponent","i20.UrlFieldsComponent","i21.SectionFieldsComponent","i22.ForthChildComponent","i22.ThirdChildComponent","i22.SecondChildComponent","i2.FirstChildComponent","i3.CheckBoxFieldsComponent","i4.DateTimeFieldsComponent","i5.DropDownFieldsComponent","i6.FilePickerFieldsComponent","i7.LocationFieldsComponent","i8.MailFieldsComponent","i9.MobileFieldsComponent","i10.NumberFieldsComponent","i11.PasswordFieldsComponent","i12.RadioButtonFieldsComponent","i13.RichTextEditorFieldsComponent","i14.SelectionMatrixFieldsComponent","i15.SignatureFieldsComponent","i16.SliderFieldsComponent","i17.TermsAndConditionFieldsComponent","i18.TextAreaFieldsComponent","i19.TextFieldsComponent","i20.ToggleSwitchFieldsComponent","i21.UrlFieldsComponent","i22.SectionFieldsComponent","i23.FirstChildComponent","i22.FirstChildComponent","i23.MultipleSubformComponent","i2.QuestionComponent","i3.SectionFieldsComponent","i4.SubFormComponent","i2.FormElementsComponent","mapper.mapPublicFormToModel","i4.DataService","i5","i6.HeaderComponent","i7.NavigationTabsComponent","i8.NextPrevNavigationComponent","i9.SubmissionContainerComponent","i2.SubmitFormComponent"],"mappings":"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"}