@piserve-tech/form-submission 1.3.3 → 1.3.4

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';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FormSubmissionService {\n\n constructor() { }\n}\n","export let environment = {\n production: false,\n googleRecaptchaSiteKey: '',\n htmlDirection: 'ltr'\n };\n ","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DataService {\n constructor() {}\n\n private dataSubject = new BehaviorSubject<string>('');\n public apiUrl$: Observable<string> = this.dataSubject.asObservable();\n private headerSubject = new BehaviorSubject<any>({});\n public header$: Observable<any> = this.headerSubject.asObservable();\n\n private parentQuestionsSubject = new BehaviorSubject<any>(null);\n public parentQuestions$: Observable<any> = this.parentQuestionsSubject.asObservable();\n\n setApiUrl(data: string): void {\n this.dataSubject.next(data);\n }\n\n setHeader(data: any) {\n this.headerSubject.next(data);\n }\n\n setParentQuestions(data: any): void {\n this.parentQuestionsSubject.next(data);\n }\n}\n","import { Appearance } from '../models/appearance.model';\nimport { ElementOptionAPI } from '../models/elementOptionAPI.model';\nimport { elementOptionAPIData } from '../models/elementOptionAPIData.model';\nimport { ElementOptionDB } from '../models/elementOptionDB.model';\nimport { ElementOptionDBCriteria } from '../models/elementOptionDBCriteria.model';\nimport { FormConfiguration } from '../models/formConfiguration.model';\nimport { FormElement } from '../models/formElement.model';\nimport { Grid } from '../models/grid.model';\nimport { Page } from '../models/page.model';\nimport { PublicForm } from '../models/publicForm.model';\nimport { Question } from '../models/question.model';\nimport { Row } from '../models/row.model';\nimport { Validation } from '../models/validation.model';\nimport { Option } from '../models/option.model';\nimport { Section } from '../models/section.model';\nimport { SubForm } from '../models/subForm.model';\nimport { FormElementType } from '../models/formElementType.model';\nimport { Logic } from '../models/logic.model';\nimport { Attachment } from '../models/attachment.model';\nimport { Submission } from '../models/submission.model';\nimport { Answer } from '../models/answer.model';\nimport { termsAndConditionType } from '../models/terms&condition.model';\n\nexport function mapPublicFormToModel(apiPublicForm: any): PublicForm {\n return {\n name: apiPublicForm.result.name,\n formConfiguration: mapFormConfigurationToModel(\n apiPublicForm.result.formConfiguration\n ),\n pages: apiPublicForm.result.pages.map((apiPage: any) =>\n mapPageToModel(apiPage)\n ),\n questionAnswers:apiPublicForm.result.questionAnswers,\n parentId:apiPublicForm.result.parentId\n };\n}\n\nfunction mapFormConfigurationToModel(\n apiFormConfiguration: any\n): FormConfiguration {\n return {\n saveAutomatically: apiFormConfiguration.saveAutomatically,\n saveInterval: apiFormConfiguration.saveInterval,\n customizeFont: apiFormConfiguration.customizeFont,\n fontFamily: apiFormConfiguration.fontFamily,\n fontSize: apiFormConfiguration.fontSize,\n enableDataExport: apiFormConfiguration.enableDataExport,\n fileFormats: apiFormConfiguration.fileFormats,\n enableQuestionNumbering: apiFormConfiguration.enableQuestionNumbering,\n questionNumbering: apiFormConfiguration.questionNumbering,\n enableGoogleRecaptcha: apiFormConfiguration.enableGoogleRecaptcha,\n googleRecaptchaKey: apiFormConfiguration.googleRecaptchaKey,\n googleRecaptchaSecret: apiFormConfiguration.googleRecaptchaSecret,\n navigation: apiFormConfiguration.navigation,\n markAllQuestionsAsRequired: apiFormConfiguration.markAllQuestionsAsRequired,\n };\n}\n\nfunction mapPageToModel(apiPage: any): Page {\n return {\n title: apiPage.title,\n rows: apiPage.rows.map((apiRow: any) => mapRowToModel(apiRow)),\n };\n}\n\nfunction mapRowToModel(apiRow: any): Row {\n return {\n grid: apiRow.grid.map((apiGrid: any) => mapGridToModel(apiGrid)),\n };\n}\n\nfunction mapGridToModel(apiGrid: any): Grid {\n let entity: Section | Question | SubForm | undefined;\n\n switch (apiGrid.entityType) {\n case 'QUESTION':\n entity = mapQuestionToModel(apiGrid.element);\n break;\n case 'SECTION':\n entity = mapSectionToModel(apiGrid.element);\n break;\n case 'SUBFORM':\n entity = mapSubFormToModel(apiGrid.element);\n break;\n default:\n throw new Error(`Unknown entity type: ${apiGrid.entityType}`);\n }\n\n return {\n entityType: apiGrid.entityType,\n element: entity,\n };\n}\n\nexport function mapSectionToModel(apiSection: any): Section {\n return {\n id: apiSection.id,\n title: apiSection.title,\n description: apiSection.description,\n };\n}\n\nexport function mapQuestionToModel(apiQuestion: any): Question {\n return {\n count: apiQuestion.count,\n id: apiQuestion.id,\n questionNumber: apiQuestion.questionNumber,\n required: apiQuestion.required,\n hint: apiQuestion.hint,\n question: apiQuestion.question,\n answer: apiQuestion?.answer,\n validation: true,\n formElement: mapFormElementToModel(apiQuestion.formElement),\n childLogics: apiQuestion?.childLogics?.map((logic: any) =>\n mapLogicToModel(logic)\n ),\n answerId: apiQuestion?.answerId,\n attachments: apiQuestion?.attachments?.map((attachment: any) => mapAttachmentToModel(attachment)) || [],\n deleteFiles: [],\n };\n}\n\nfunction mapAttachmentToModel(apiAttachment: any): Attachment {\n return {\n fileId: apiAttachment.fileId,\n fileName: apiAttachment.fileName,\n fileUrl: apiAttachment.fileUrl,\n };\n}\n\nfunction mapFormElementToModel(apiFormElement: any): FormElement {\n return {\n elementType: apiFormElement.elementType,\n appearance: mapAppearanceToModel(apiFormElement.appearance),\n validation: mapValidationToModel(apiFormElement.validation),\n option: mapOptionToModel(apiFormElement?.option),\n selectionMatrixLabel: apiFormElement.selectionMatrixLabel,\n selectionMatrixColumn: apiFormElement.selectionMatrixColumn,\n termsAndConditionType: maptermsAndCondition(apiFormElement)\n };\n}\nfunction maptermsAndCondition(Element: any): termsAndConditionType {\n console.log(\"Element\",Element)\n if(Element.termsAndCondition != undefined){\n let data = Element.termsAndCondition\n return {\n termsAndConditionType: data.termsAndConditionType,\n fileUrl: data.fileUrl,\n fileName: data.fileName,\n };\n }\n else{\n return {\n termsAndConditionType: '',\n fileUrl: '',\n fileName: '',\n }\n }\n\n}\n\nfunction mapLogicToModel(apiLogic: any): Logic {\n return {\n id: apiLogic.id,\n inputValue: apiLogic.inputValue,\n condition: apiLogic.condition,\n showLogic: false,\n formElements: apiLogic?.formElements?.map((element: any) =>\n mapFormElementTypeToModel(element)\n ),\n };\n}\n\nexport function mapSubFormToModel(apiSubForm: any): SubForm {\n return {\n id: apiSubForm.id,\n count: apiSubForm.count,\n title: apiSubForm.title,\n description: apiSubForm.description,\n subFormStructure: apiSubForm.subFormStructure,\n formElements: apiSubForm.formElements.map((element: any) => mapFormElementTypeToModel(element)),\n submissions: apiSubForm?.submissions?.map((submission: any) => mapSubmissionToModel(submission)),\n };\n}\n\nfunction mapSubmissionToModel(apiSubmission: any): Submission {\n return {\n submissionId: apiSubmission?.submissionId,\n answers: apiSubmission?.answers?.map((answer: any) => mapAnswerToModel(answer)),\n };\n}\n\nfunction mapAnswerToModel(apiAnswer: any): Answer {\n return {\n questionId: apiAnswer.questionId,\n answer: apiAnswer?.answer,\n answerId: apiAnswer?.answerId,\n attachments: apiAnswer?.attachments?.map((attachment: any) => mapAttachmentToModel(attachment)),\n };\n}\n\nexport function mapFormElementTypeToModel(\n apiFormElementType: any\n): FormElementType<any> {\n return {\n entityType: apiFormElementType?.entityType,\n element: apiFormElementType?.element,\n };\n}\n\nfunction mapAppearanceToModel(apiAppearance: any): Appearance {\n return {\n placeholder: apiAppearance?.placeholder,\n fontSize: apiAppearance?.fontSize,\n textAlign: apiAppearance?.textAlign,\n font: apiAppearance?.font,\n underline: apiAppearance?.underline,\n bold: apiAppearance?.bold,\n italics: apiAppearance?.italics,\n defaultValue: apiAppearance?.defaultValue,\n numberOfRows: apiAppearance?.numberOfRows,\n singleSelection: apiAppearance?.singleSelection,\n displayCountryCode: apiAppearance?.displayCountryCode,\n displayFlag: apiAppearance?.displayFlag,\n displayCode: apiAppearance?.displayCode,\n showCountryName: apiAppearance?.showCountryName,\n beautifyNumbers: apiAppearance?.beautifyNumbers,\n upAndDownButton: apiAppearance?.upAndDownButton,\n allowNegativeValues: apiAppearance?.allowNegativeValues,\n showPreviewButton: apiAppearance?.showPreviewButton,\n confirmPassword: apiAppearance?.confirmPassword,\n viewButton: apiAppearance?.viewButton,\n displayStrong: apiAppearance?.displayStrong,\n dateType: apiAppearance?.dateType,\n format: apiAppearance?.format,\n setCurrentPosition: apiAppearance?.setCurrentPosition,\n defaultZoomLevel: apiAppearance?.defaultZoomLevel,\n allowFullScreen: apiAppearance?.allowFullScreen,\n latitude: apiAppearance?.latitude,\n longitude: apiAppearance?.longitude,\n showAcceptButton: apiAppearance?.showAcceptButton,\n labelOnValue: apiAppearance?.labelOnValue,\n labelOffValue: apiAppearance?.labelOffValue,\n labelOnColor: apiAppearance?.labelOnColor,\n labelOffColor: apiAppearance?.labelOffColor,\n minValue: apiAppearance?.minValue,\n maxValue: apiAppearance?.maxValue,\n stepValue: apiAppearance?.stepValue,\n changeSliderColor: apiAppearance?.changeSliderColor,\n sliderColor: apiAppearance?.sliderColor,\n canvasOption: apiAppearance?.canvasOption,\n selectionType: apiAppearance?.selectionType,\n dragAndDrop: apiAppearance?.dragAndDrop,\n previewUploadedFiles: apiAppearance?.previewUploadedFiles,\n multiFileUploads: apiAppearance?.multiFileUploads,\n selectionColorRequired: apiAppearance?.selectionColorRequired,\n selectionColor: apiAppearance?.selectionColor,\n color: apiAppearance?.color,\n avatarPicker:apiAppearance?.avatarPicker\n };\n}\n\nfunction mapValidationToModel(apiValidation: any): Validation {\n return {\n regexValidation: apiValidation?.regexValidation,\n regex: apiValidation?.regex,\n validationMessage: apiValidation?.validationMessage,\n limitedCharacters: apiValidation?.limitedCharacters,\n count: apiValidation?.count,\n minimumSelection: apiValidation?.minimumSelection,\n maximumSelection: apiValidation?.maximumSelection,\n countryWiseValidation: apiValidation?.countryWiseValidation,\n restrictCountry: apiValidation?.restrictCountry,\n allowedCountries: apiValidation?.allowedCountries,\n blockedCountries: apiValidation?.blockedCountries,\n regularExpression: apiValidation?.regularExpression,\n expectedDomains: apiValidation?.expectedDomains,\n min: apiValidation?.min,\n max: apiValidation?.max,\n minLength: apiValidation?.minLength,\n maxLength: apiValidation?.maxLength,\n requireLowercaseLetters: apiValidation?.requireLowercaseLetters,\n requireUppercaseLetters: apiValidation?.requireUppercaseLetters,\n requireNumbers: apiValidation?.requireNumbers,\n requireSpecialCharacters: apiValidation?.requireSpecialCharacters,\n allowedSpecialCharacters: apiValidation?.allowedSpecialCharacters,\n minDateOption: apiValidation?.minDateOption,\n minDate: apiValidation?.minDate,\n maxDateOption: apiValidation?.maxDateOption,\n maxDate: apiValidation?.maxDate,\n regionBoundary: apiValidation?.regionBoundary,\n region: apiValidation?.region,\n preventFromProceedingWithoutAgree:\n apiValidation?.preventFromProceedingWithoutAgree,\n buttonColour: apiValidation?.buttonColour,\n maxFileSize: apiValidation?.maxFileSize,\n minFileSize: apiValidation?.minFileSize,\n minSelection: apiValidation?.minSelection,\n maxSelection: apiValidation?.maxSelection,\n fileTypes: apiValidation?.fileTypes,\n fileSize: apiValidation?.fileSize,\n fileSizeUnit: apiValidation?.fileSizeUnit,\n totalFileSize: apiValidation?.totalFileSize,\n minSelectionRequired: apiValidation?.minSelectionRequired,\n minSelectionValue: apiValidation?.minSelectionValue,\n validationType: apiValidation?.validationType,\n validation: apiValidation?.validation,\n };\n}\n\nfunction mapElementOptionDBToModel(apiElementOptionDB: any): ElementOptionDB {\n return {\n tableName: apiElementOptionDB.tableName,\n valueField: apiElementOptionDB.valueField,\n labelField: apiElementOptionDB.labelField,\n criteria: apiElementOptionDB?.criteria.map((apiCriteria: any) =>\n mapElementOptionDBCriteriaToModel(apiCriteria)\n ),\n };\n}\n\nfunction mapElementOptionDBCriteriaToModel(\n apiElementOptionDBCriteria: any\n): ElementOptionDBCriteria {\n return {\n field: apiElementOptionDBCriteria?.field,\n condition: apiElementOptionDBCriteria?.condition,\n valueSource: apiElementOptionDBCriteria?.valueSource,\n inputValue: apiElementOptionDBCriteria?.inputValue,\n logicalOperator: apiElementOptionDBCriteria?.logicalOperator,\n };\n}\n\nfunction mapElementOptionAPIToModel(\n apiElementOptionAPI: any\n): ElementOptionAPI {\n return {\n external: apiElementOptionAPI?.external,\n url: apiElementOptionAPI?.url,\n valueField: apiElementOptionAPI?.valueField,\n labelField: apiElementOptionAPI?.labelField,\n pathToValue: apiElementOptionAPI?.pathToValue,\n headers: apiElementOptionAPI?.headers?.map(mapElementOptionAPIDataToModel),\n params: apiElementOptionAPI?.params?.map(mapElementOptionAPIDataToModel),\n pathVariables: apiElementOptionAPI?.pathVariables?.map(\n mapElementOptionAPIDataToModel\n ),\n };\n}\n\nfunction mapElementOptionAPIDataToModel(\n apiElementOptionAPIData: any\n): elementOptionAPIData {\n return {\n keyName: apiElementOptionAPIData?.keyName,\n valueSource: apiElementOptionAPIData?.valueSource,\n inputValue: apiElementOptionAPIData?.inputValue,\n };\n}\n\nfunction mapOptionToModel(apiOption: any): Option {\n return {\n optionType: apiOption?.optionType,\n lookupTable: apiOption?.lookupTable,\n customOptions: apiOption?.customOptions?.map((option: { value: any }) => ({\n value: option.value,\n })),\n database: apiOption?.database\n ? mapElementOptionDBToModel(apiOption?.database)\n : undefined,\n api: apiOption?.api ? mapElementOptionAPIToModel(apiOption.api) : undefined,\n };\n}\n\n\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { DataService } from './data.service';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormService {\n private apiUrl: string = '';\n header: any = {};\n parentQuestions: any;\n\n constructor(private http: HttpClient, private dataService: DataService) {\n this.dataService.apiUrl$.subscribe((data) => {\n this.apiUrl = data;\n });\n\n this.dataService.header$.subscribe((data) => {\n this.header = data;\n });\n\n this.dataService.parentQuestions$.subscribe((questions) => {\n if (questions) {\n this.parentQuestions = questions;\n }\n });\n }\n\n getQuestions(moduleName: string) {\n const headers = new HttpHeaders({\n 'Accept-Language': this.header.acceptedLanguage,\n });\n return this.http.get(`${this.apiUrl}/api/public/forms/${moduleName}`, {\n headers\n });\n }\n\n fetchDataFromDatabase(database: any) {\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\n return this.http.post<any>(`${this.apiUrl}/api/load-from-db`, database, {\n headers,\n });\n }\n\n fetchDataFromLookup(tableName: string) {\n return this.http.get<any>(`${this.apiUrl}/api/public/lookup/${tableName}`);\n }\n\n fetchDataFromExternalAPI(url: string): Observable<any> {\n return this.http.get<any>(url);\n }\n\n submitForm(moduleName: string, formData: FormData): Observable<any> {\n const headers = new HttpHeaders({\n 'Auth-user': this.header.authUser,\n });\n const url = `${this.apiUrl}/api/public/forms/${moduleName}/submissions`;\n return this.http.post(url, formData, {\n headers\n });\n }\n\n getSubmittedForm(moduleName: string, submissionId: string) {\n const questions = this.parentQuestions ? this.parentQuestions.map((q: any) => `parentQuestions=${encodeURIComponent(q)}`).join('&') : '';\n return this.http.get<any>(`${this.apiUrl}/api/forms/${moduleName}/submissions/${submissionId}?${questions}`);\n }\n\n updateForm(moduleName: string, submissionId: string, formData: FormData): Observable<any> {\n const headers = new HttpHeaders({\n 'Auth-user': this.header.authUser,\n });\n const url = `${this.apiUrl}/api/public/forms/${moduleName}/submissions/${submissionId}`;\n return this.http.put(url, formData, {\n headers\n });\n }\n previewFile(url: any): Observable<any> {\n const headers = new HttpHeaders({\n 'Content-Type': this.header.contentType,\n 'auth-user': this.header.authUser,\n });\n const body = {\n // Your request body content here\n };\n const options = {\n headers: headers,\n body: body,\n };\n const fileUrl = url;\n const encodedFileUrl = encodeURIComponent(fileUrl);\n const fullUrl = `?url=${encodedFileUrl}`;\n return this.http.get<any>(this.apiUrl + `/api/cdn/preview${fullUrl}`, options);\n }\n\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss']\n})\nexport class HeaderComponent {\n @Input() name: string = '';\n}\n","<div class=\"head container\">\n <div class=\"registration-header\">\n <h2>{{ name }}</h2>\n </div>\n <div class=\"line\"></div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormService } from '../../services/form.service';\n\n@Component({\n selector: 'lib-check-box-fields',\n templateUrl: './check-box-fields.component.html',\n styleUrls: ['./check-box-fields.component.scss'],\n})\nexport class CheckBoxFieldsComponent {\n @Input() question: any = {};\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n selectionType: string = '';\n minimumSelection?: number;\n maximumSelection?: number;\n optionType: string = '';\n lookupTable: any = {};\n customOptions: any[] = [];\n database: any = {};\n api: any = {};\n apiOptions: any[] = []; \n selectedOptions: any[] = [];\n validationFailed: boolean = false;\n validationMessage: string = '';\n\n constructor(private formService: FormService) { }\n\n ngOnInit() {\n this.valueAssigned();\n }\n\n valueAssigned() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.selectionType = this.question.formElement.appearance.selectionType;\n this.minimumSelection =\n this.question.formElement.validation.minimumSelection;\n this.maximumSelection =\n this.question.formElement.validation.maximumSelection;\n this.optionType = this.question.formElement.option.optionType;\n switch (this.optionType) {\n case 'OPTION':\n this.customOptions = this.question.formElement.option.customOptions;\n if (this.question.answer) {\n this.initializeCustomOption();\n }\n break;\n case 'LOOKUP':\n this.lookupTable = this.question.formElement.option.lookupTable;\n this.fetchDataFromLookup();\n break;\n case 'DATABASE':\n this.database = this.question.formElement.option.database;\n this.fetchDataFromDatabase();\n break;\n case 'API':\n this.api = this.question.formElement.option.api;\n this.fetchDataFromAPI();\n break;\n default:\n console.warn('Unknown option type:', this.optionType);\n }\n\n // If selectionType is 'SINGLE', set minimumSelection and maximumSelection to 1\n if (this.selectionType === 'SINGLE') {\n this.minimumSelection = 1;\n this.maximumSelection = 1;\n }\n\n // If selectionType is 'MULTIPLE' and minSelection and maxSelection are not specified, set them to undefined\n if (\n this.selectionType === 'MULTIPLE' &&\n !this.minimumSelection &&\n !this.maximumSelection\n ) {\n this.minimumSelection = undefined;\n this.maximumSelection = undefined;\n }\n\n if(this.question.childLogics && this.question.answer){\n this.updateChildLogics(this.question)\n }\n }\n\n initializeCustomOption() {\n this.customOptions?.forEach((option: any) => {\n if (this.question?.answer?.find((a: any) => a.toString() === option.value.toString())) {\n this.selectedOptions.push(option);\n }\n })\n }\n\n onCheckboxChange(option: any, event: any) {\n if (this.selectionType === 'SINGLE') {\n if (event.target.checked) {\n this.selectedOptions = [option];\n this.question.answer = [option.value];\n } else {\n this.selectedOptions = [];\n this.question.answer = [];\n }\n this.isMinimumSelectionValid();\n } else if (this.selectionType === 'MULTIPLE') {\n if (event.target.checked) {\n if (!this.selectedOptions.includes(option)) {\n this.selectedOptions.push(option);\n }\n } else {\n this.selectedOptions = this.selectedOptions.filter(\n (item) => item !== option\n );\n }\n this.question.answer = this.selectedOptions.map((item) => item.value);\n this.isMinimumSelectionValid();\n }\n\n // Check if the number of selected options exceeds the maximum allowed\n if (\n this.maximumSelection !== undefined &&\n this.selectedOptions.length > this.maximumSelection\n ) {\n // If exceeded, uncheck the last selected option\n event.target.checked = false;\n this.selectedOptions = this.selectedOptions.filter(\n (item) => item !== option\n );\n this.question.answer = this.selectedOptions.map((item) => item.value);\n this.isMinimumSelectionValid();\n }\n\n if(this.question.childLogics){\n this.updateChildLogics(this.question);\n }\n }\n\n updateChildLogics(question: any) {\n if (question.childLogics && Array.isArray(question.childLogics)) {\n question.childLogics.forEach((childLogic: any) => {\n if(this.selectionType=='SINGLE'){\n if(this.selectedOptions.length==0){\n childLogic.showLogic=false;\n }\n else{\n childLogic.showLogic = this.evaluateCondition(this.selectedOptions[0]?.value, childLogic.condition, childLogic.inputValue);\n }\n }\n else if (this.selectionType === 'MULTIPLE') {\n if(this.selectedOptions.length==0){\n childLogic.show=false;\n }\n else{\n const selectedValues = this.selectedOptions.map((item: any) => item.value);\n childLogic.showLogic = this.evaluateMultipleCondition(selectedValues, childLogic.condition, childLogic.inputValue);\n }\n }\n });\n }\n }\n \n evaluateCondition(answer: any[], condition: string, inputValue: any): boolean {\n const stringInputValue = Array.isArray(inputValue) ? inputValue.map(val => val.toString()) : inputValue;\n\n switch (condition) { \n case \"!=\":\n return answer !=stringInputValue;\n case \"=\":\n return answer ==stringInputValue;\n case \"IN\":\n return stringInputValue.includes(answer);\n case \"NOT IN\":\n return !(stringInputValue.includes(answer))\n default:\n return false;\n }\n }\n\n evaluateMultipleCondition(answers: any[], condition: string, inputValue: any): boolean {\n const stringInputValue = Array.isArray(inputValue) ? inputValue.map(val => val.toString()) : inputValue.toString();\n switch (condition) {\n case \"!=\":\n return answers.every(answer => answer != stringInputValue);\n case \"=\":\n return answers.some(answer => answer == stringInputValue);\n case \"IN\":\n return answers.some(answer => stringInputValue.includes(answer));\n case \"NOT IN\":\n return answers.every(answer => !stringInputValue.includes(answer));\n default:\n return false;\n }\n }\n\n fetchDataFromLookup() {\n this.formService.fetchDataFromLookup(this.lookupTable).subscribe(\n (response) => {\n this.customOptions = response.result.values.map(\n (item: { value: string; label: string }) => ({\n value: item.value,\n label: item.label,\n })\n );\n if (this.question.answer) {\n this.initializeCustomOption();\n }\n },\n (error) => {\n console.error('HTTP Error:', error);\n }\n );\n }\n\n fetchDataFromDatabase() {\n const transformedDatabase = this.transformDatabaseObject(this.database);\n this.formService.fetchDataFromDatabase(transformedDatabase).subscribe(\n (response) => {\n if (response.success) {\n this.customOptions = response.result.map(\n (item: { value: string; label: string }) => ({\n value: item.value,\n label: item.label,\n })\n );\n if (this.question.answer) {\n this.initializeCustomOption();\n }\n } else {\n console.error('Error fetching data from database:', response.message);\n }\n },\n (error) => {\n console.error('HTTP Error:', error);\n }\n );\n }\n\n transformDatabaseObject(database: any) {\n return {\n tableName: database.tableName,\n valueField: database.valueField,\n labelField: database.labelField,\n criteria: database.criteria.map((criteria: any) => ({\n field: criteria?.field,\n valueSource:criteria?.valueSource,\n condition: criteria?.condition,\n value: criteria?.inputValue,\n logicalOperator: criteria?.logicalOperator,\n })),\n };\n }\n\n fetchDataFromAPI() {\n const apiConfig = this.api;\n this.formService.fetchDataFromExternalAPI(apiConfig.url).subscribe(\n (response) => {\n const data = this.extractDataByPath(response, apiConfig.pathToValue);\n this.customOptions = data.map((item: any) => ({\n value: item[apiConfig.valueField],\n label: item[apiConfig.labelField],\n }));\n if (this.question.answer) {\n \n this.initializeCustomOption();\n \n }\n },\n (error) => {\n console.error('HTTP Error:', error);\n }\n );\n }\n\n extractDataByPath(data: any, path: string) {\n return path.split('.').reduce((acc, part) => acc && acc[part], data);\n }\n\n isMinimumSelectionValid() {\n this.validationFailed = false;\n \n if (this.selectedOptions.length == 0 && this.required) {\n this.validationFailed = true;\n this.validationMessage = 'This is a required question';\n this.question.validation = false;\n } else if (this.minimumSelection !== undefined) {\n if(this.selectionType=='SINGLE'){\n if (this.selectedOptions.length < this.minimumSelection && this.required) {\n this.validationFailed = true;\n this.validationMessage = `Minimum ${this.minimumSelection} selection(s) required.`;\n this.question.validation = false;\n }\n else {\n this.question.validation = true;\n }\n }\n else{\n if (this.selectedOptions.length < this.minimumSelection) {\n this.validationFailed = true;\n this.validationMessage = `Minimum ${this.minimumSelection} selection(s) required.`;\n this.question.validation = false;\n }\n else {\n this.question.validation = true;\n }\n }\n } else {\n this.question.validation = true;\n }\n }\n\n getOptions() {\n if (this.optionType === 'OPTION') {\n return this.customOptions;\n } else if (this.optionType === 'LOOKUP') {\n return Object.values(this.lookupTable);\n } else if (this.optionType === 'API') {\n return this.apiOptions.map((option) => option.valueField);\n } else {\n return [];\n }\n }\n\n isOptionDisabled(option: any): boolean {\n return (\n this.maximumSelection !== undefined &&\n this.selectedOptions.length >= this.maximumSelection &&\n !this.selectedOptions.includes(option)\n );\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <div class=\"form-check\" *ngFor=\"let option of customOptions\">\n <input\n class=\"form-check-input\"\n type=\"checkbox\"\n [id]=\"option.value + question?.id\"\n [name]=\"option.value + 'Checkbox'\"\n [value]=\"option.value\"\n (change)=\"onCheckboxChange(option, $event)\"\n [disabled]=\"isOptionDisabled(option)\"\n [checked]=\"selectedOptions.includes(option)\"\n />\n <label\n class=\"formCheckLabel ms-2 me-4 mb-2\"\n [for]=\"option.value + question?.id\"\n *ngIf=\"optionType == 'OPTION'\"\n >{{ option.value }}</label\n >\n <label\n class=\"formCheckLabel ms-2 me-4\"\n [for]=\"option.value + question?.id\"\n *ngIf=\"optionType == 'LOOKUP' || 'DATABASE' || 'API'\"\n >{{ option.label }}</label\n >\n </div>\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n","import { DatePipe } from '@angular/common';\nimport { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport {\n BsDatepickerConfig,\n BsDatepickerDirective,\n} from 'ngx-bootstrap/datepicker';\n\n@Component({\n selector: 'lib-date-time-fields',\n templateUrl: './date-time-fields.component.html',\n styleUrls: ['./date-time-fields.component.scss'],\n providers: [DatePipe]\n})\nexport class DateTimeFieldsComponent {\n bsConfig: Partial<BsDatepickerConfig> = {\n containerClass: 'theme-red',\n };\n\n @Input() question: any = {};\n required: boolean = false;\n hint: string = '';\n count: number = 0;\n dateType: string = '';\n format: string = '';\n minDateOption: string = '';\n minDate: Date | undefined;\n maxDateOption: string = '';\n maxDate: Date | undefined;\n todayDate: Date = new Date();\n selectedDate: string = '';\n selectedTime: string = '';\n selectedDateRange: string = '';\n selectedDateAndTime: string = '';\n validationFailed!: boolean;\n validationMessage: string = '';\n @ViewChild('datepickerYMD') datepicker!: BsDatepickerDirective;\n @ViewChild('daterangepicker') dateRangePicker!: BsDatepickerDirective;\n @ViewChild('dateAndTimePicker') dateAndTimePicker!: BsDatepickerDirective;\n constructor(private datePipe: DatePipe) { }\n\n ngOnInit() {\n this.valueAssigned();\n }\n\n valueAssigned() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.dateType = this.question.formElement.appearance.dateType;\n this.minDateOption = this.question.formElement.validation.minDateOption;\n this.minDate = this.getMinDate();\n this.maxDateOption = this.question.formElement.validation.maxDateOption;\n this.maxDate = this.getMaxDate();\n this.setDateTimeFormat();\n this.selectedDate = this.question.answer;\n this.selectedTime = this.question.answer;\n this.selectedDateAndTime = this.question.answer;\n this.selectedDateRange = this.question.answer;\n }\n\n setDateTimeFormat() {\n switch (this.dateType) {\n case 'DATE_ONLY':\n this.format = 'DD/MM/YYYY';\n break;\n case 'TIME_ONLY':\n this.format = 'HH:mm';\n break;\n case 'DATE_AND_TIME':\n this.format = 'DD/MM/YYYY HH:mm';\n break;\n case 'DATE_RANGE':\n this.format = 'DD/MM/YYYY';\n break;\n default:\n this.format = 'DD/MM/YYYY';\n }\n }\n\n getMinDate(): Date | undefined {\n if (this.minDateOption === 'TODAY') {\n return this.todayDate;\n } else if (this.minDateOption === 'CUSTOM') {\n return new Date(this.question.formElement.validation.minDate);\n }\n return undefined; // Return undefined if no valid option\n }\n\n getMaxDate(): Date | undefined {\n if (this.maxDateOption === 'TODAY') {\n return this.todayDate;\n } else if (this.maxDateOption === 'CUSTOM') {\n return new Date(this.question.formElement.validation.maxDate);\n }\n return undefined;\n }\n\n openDatePicker() {\n this.datepicker.toggle();\n }\n\n openDateRangePicker() {\n this.dateRangePicker.toggle();\n }\n\n openDateAndTimePicker() {\n this.dateAndTimePicker.toggle();\n }\n\n validateField() {\n if (this.dateType === 'DATE_ONLY') {\n this.question.answer = this.formatDate(this.selectedDate);\n this.validateDateOnly()\n }\n else if(this.dateType === 'TIME_ONLY'){\n this.question.answer=String(this.selectedTime);\n this.validateTimeOnly()\n }\n else if (this.dateType === 'DATE_AND_TIME') {\n this.question.answer = this.formatDate(this.selectedDateAndTime);\n this.validateDateAndTime()\n }\n else {\n this.question.answer = this.formatDate(this.selectedDateRange);\n this.validateDateRange()\n }\n }\n\n formatDate(date: string | Date, type: string = 'dateTime'): string {\n switch (this.dateType) {\n case 'DATE_ONLY':\n return this.datePipe.transform(date, 'dd/MM/yyyy') || '';\n case 'DATE_AND_TIME':\n return this.datePipe.transform(date, 'dd/MM/yyyy HH:mm') || '';\n case 'DATE_RANGE':\n const dates = date as unknown as Date[];\n if (dates.length === 2) {\n const start = this.datePipe.transform(dates[0], 'dd/MM/yyyy');\n const end = this.datePipe.transform(dates[1], 'dd/MM/yyyy');\n return `${start} - ${end}`;\n }\n return '';\n default:\n return this.datePipe.transform(date, 'dd/MM/yyyy') || '';\n }\n }\n\n validateDateOnly() {\n this.validationFailed = false;\n this.validationMessage = '';\n if (this.required && !this.selectedDate) {\n this.validationFailed = true;\n this.validationMessage = 'This is a required question';\n this.question.validation = false;\n }\n else {\n this.question.validation = true;\n }\n }\n validateTimeOnly() {\n this.validationFailed = false;\n this.validationMessage = '';\n if (this.required && !this.selectedTime) {\n this.validationFailed = true;\n this.validationMessage = 'This is a required question';;\n this.question.validation = false;\n }\n else {\n this.question.validation = true;\n }\n }\n validateDateRange() {\n this.validationFailed = false;\n this.validationMessage = '';\n if (this.required && !this.selectedDateRange) {\n this.validationFailed = true;\n this.validationMessage = 'This is a required question';\n this.question.validation = false;\n }\n else {\n this.question.validation = true;\n }\n }\n validateDateAndTime() {\n this.validationFailed = false;\n this.validationMessage = '';\n if (this.required && !this.selectedDateAndTime) {\n this.validationFailed = true;\n this.validationMessage = 'This is a required question';\n this.question.validation = false;\n }\n else {\n this.question.validation = true;\n }\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <ng-container *ngIf=\"dateType === 'DATE_ONLY'\">\n <!-- Date only picker -->\n <div class=\"input-container\">\n <input\n class=\"form-control height\"\n #datepickerYMD=\"bsDatepicker\"\n bsDatepicker\n [minDate]=\"minDate ? minDate : todayDate\"\n [maxDate]=\"maxDate ? maxDate : todayDate\"\n [bsConfig]=\"{ dateInputFormat: format }\"\n [(ngModel)]=\"selectedDate\"\n (blur)=\"validateField()\"\n (ngModelChange)=\"validateField()\"\n [class.invalid]=\"validationFailed\"\n />\n <i\n class=\"fa-solid fa-calendar-days calendar-icon text-primary fs-5\"\n (click)=\"openDatePicker()\"\n ></i>\n </div>\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"dateType === 'TIME_ONLY'\">\n <!-- Time picker -->\n <input\n type=\"time\"\n class=\"form-control height\"\n (blur)=\"validateField()\"\n [(ngModel)]=\"selectedTime\"\n (ngModelChange)=\"validateField()\"\n [class.invalid]=\"validationFailed\"\n />\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"dateType === 'DATE_AND_TIME'\">\n <!-- Date and time picker -->\n <div class=\"input-container\">\n <input\n #dateAndTimePicker=\"bsDatepicker\"\n type=\"text\"\n class=\"form-control height\"\n [minDate]=\"minDate ? minDate : todayDate\"\n [maxDate]=\"maxDate ? maxDate : todayDate\"\n [bsConfig]=\"{\n withTimepicker: true,\n keepDatepickerOpened: true,\n rangeInputFormat: format,\n dateInputFormat: format\n }\"\n bsDatepicker\n [class.invalid]=\"validationFailed\"\n [(ngModel)]=\"selectedDateAndTime\"\n (blur)=\"validateField()\"\n (ngModelChange)=\"validateField()\"\n />\n <i\n class=\"fa-solid fa-calendar-days calendar-icon text-primary fs-5\"\n (click)=\"openDateAndTimePicker()\"\n ></i>\n </div>\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"dateType === 'DATE_RANGE'\">\n <!-- Date range picker -->\n <div class=\"input-container\">\n <input\n type=\"text\"\n class=\"form-control height\"\n #daterangepicker=\"bsDaterangepicker\"\n bsDaterangepicker\n [minDate]=\"minDate ? minDate : todayDate\"\n [maxDate]=\"maxDate ? maxDate : todayDate\"\n [bsConfig]=\"{\n rangeInputFormat: format,\n dateInputFormat: format,\n showWeekNumbers: false\n }\"\n [(ngModel)]=\"selectedDateRange\"\n (blur)=\"validateField()\"\n (ngModelChange)=\"validateField()\"\n [class.invalid]=\"validationFailed\"\n />\n <i\n class=\"fa-solid fa-calendar-days calendar-icon text-primary fs-5\"\n (click)=\"openDateRangePicker()\"\n ></i>\n </div>\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n </ng-container>\n</div>\n","import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormService } from '../../services/form.service';\n\ninterface DropDownData {\n value: string;\n label: string;\n image: string;\n}\n\n@Component({\n selector: 'lib-drop-down-fields',\n templateUrl: './drop-down-fields.component.html',\n styleUrls: ['./drop-down-fields.component.scss'],\n})\nexport class DropDownFieldsComponent {\n @Input() question: any = {};\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n selectionType: string = '';\n minimumSelection: number = 0;\n maximumSelection: number = 0;\n optionType: string = '';\n lookupTable: string = '';\n customOptions: DropDownData[] = [];\n database: any = {};\n api: any = {};\n selectedValue: any[] = [];\n validationFailed!: boolean;\n validationMessage: string = '';\n\n constructor(private formService: FormService,\n private cdr:ChangeDetectorRef\n ) { }\n\n ngOnInit() {\n this.valueAssigned();\n }\n\n onValueChange(newValue: any) {\n this.selectedValue = newValue;\n this.selectItems();\n }\n\n valueAssigned() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.selectionType = this.question.formElement.appearance.selectionType;\n this.minimumSelection =\n this.question.formElement.validation.minimumSelection;\n this.maximumSelection =\n this.question.formElement.validation.maximumSelection;\n this.optionType = this.question.formElement.option.optionType;\n\n switch (this.optionType) {\n case 'OPTION':\n this.customOptions = this.question.formElement.option.customOptions.map(\n (option: { value: string }) => ({\n label: option.value,\n value: option.value,\n image: '',\n })\n );\n if (this.question.answer) {\n this.initializeCustomOption();\n }\n break;\n case 'LOOKUP':\n this.lookupTable = this.question.formElement.option.lookupTable;\n this.fetchDataFromLookup();\n break;\n case 'DATABASE':\n this.database = this.question.formElement.option.database;\n this.fetchDataFromDatabase();\n break;\n case 'API':\n this.api = this.question.formElement.option.api;\n this.fetchDataFromAPI();\n break;\n default:\n console.warn('Unknown option type:', this.optionType);\n }\n\n if(this.question.childLogics && this.question.answer){\n this.updateChildLogics(this.question)\n }\n }\n\n initializeCustomOption() {\n this.customOptions.forEach((option: any) => {\n if (this.question?.answer?.find((a: any) => a.toString() === option.value.toString())) { \n this.selectedValue.push(option);\n }\n })\n this.cdr.detectChanges();\n }\n\n transformDatabaseObject(database: any) {\n return {\n tableName: database.tableName,\n valueField: database.valueField,\n labelField: database.labelField,\n criteria: database.criteria.map((criteria: any) => ({\n field: criteria.field,\n valueSource:criteria?.valueSource,\n condition: criteria.condition,\n value: criteria.inputValue,\n logicalOperator: criteria.logicalOperator,\n })),\n };\n }\n\n\n fetchDataFromDatabase() {\n const transformedDatabase = this.transformDatabaseObject(this.database);\n this.formService.fetchDataFromDatabase(transformedDatabase).subscribe(\n (response) => {\n if (response.success) {\n this.customOptions = response.result.map(\n (item: { value: string; label: string }) => ({\n value: item.value,\n label: item.label,\n })\n );\n if (this.question.answer) {\n this.initializeCustomOption();\n }\n } else {\n console.error('Error fetching data from database:', response.message);\n }\n this.cdr.detectChanges();\n },\n (error) => {\n console.error('HTTP Error:', error);\n this.cdr.detectChanges();\n }\n );\n }\n\n fetchDataFromLookup() {\n this.formService.fetchDataFromLookup(this.lookupTable).subscribe(\n (response) => {\n this.customOptions = response.result.values.map(\n (item: { value: string; label: string }) => ({\n value: item.value,\n label: item.label,\n })\n );\n if (this.question.answer) {\n this.initializeCustomOption();\n }\n },\n (error) => {\n console.error('HTTP Error:', error);\n }\n );\n }\n\n fetchDataFromAPI() {\n const apiConfig = this.api;\n this.formService.fetchDataFromExternalAPI(apiConfig.url).subscribe(\n (response) => {\n const data = this.extractDataByPath(response, apiConfig.pathToValue);\n this.customOptions = data.map((item: any) => ({\n value: item[apiConfig.valueField],\n label: item[apiConfig.labelField],\n }));\n if (this.question.answer) {\n this.initializeCustomOption();\n }\n },\n (error) => {\n console.error('HTTP Error:', error);\n }\n );\n }\n\n extractDataByPath(data: any, path: string) {\n return path.split('.').reduce((acc, part) => acc && acc[part], data);\n }\n\n selectItems() {\n const valuesArray = this.selectedValue.map(item => item.value);\n this.question.answer = valuesArray;\n this.validationFailed = false;\n this.validationMessage = ''; \n if (this.selectedValue.length == 0 && this.required) {\n this.validationFailed = true;\n this.validationMessage = `This is a required question`;\n this.question.validation = false;\n } else if (\n this.selectedValue.length < this.minimumSelection ||\n this.selectedValue.length > this.maximumSelection\n ) {\n this.validationFailed = true;\n this.validationMessage = `selected options must be between ${this.minimumSelection} & ${this.maximumSelection}`;\n this.question.validation = false;\n }\n else {\n this.question.validation = true;\n }\n if (this.question.childLogics) {\n this.updateChildLogics(this.question);\n }\n }\n\n updateChildLogics(question: any) {\n if (question.childLogics && Array.isArray(question.childLogics)) {\n question.childLogics.forEach((childLogic: any) => {\n if(this.selectionType=='SINGLE'){\n if(this.selectedValue.length==0){\n childLogic.show=false;\n }\n else{\n const selectedValue=this.selectedValue[0]?.value\n childLogic.showLogic = this.evaluateCondition(selectedValue, childLogic.condition, childLogic.inputValue);\n }\n \n }\n else if (this.selectionType === 'MULTIPLE') {\n if(this.selectedValue.length==0){\n childLogic.show=false;\n }\n else{\n const selectedValues = this.selectedValue.map((item: any) => item.value);\n childLogic.showLogic = this.evaluateMultipleCondition(selectedValues, childLogic.condition, childLogic.inputValue);\n }\n }\n });\n }\n }\n\n evaluateCondition(answer: any[], condition: string, inputValue: any): boolean {\n switch (condition) {\n case \"!=\":\n return answer != inputValue;\n case \"=\":\n return answer == inputValue;\n default:\n return false;\n }\n }\n\n evaluateMultipleCondition(answers: any[], condition: string, inputValue: any): boolean {\n const stringInputValue = Array.isArray(inputValue) ? inputValue.map(val => val.toString()) : inputValue.toString();\n switch (condition) {\n case \"!=\":\n return answers.every(answer => answer != stringInputValue);\n case \"=\":\n return answers.some(answer => answer == stringInputValue);\n case \"IN\":\n return answers.some(answer => stringInputValue.includes(answer));\n case \"NOT IN\":\n return answers.every(answer => !stringInputValue.includes(answer));\n default:\n return false;\n }\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <lib-dropdown\n [items]=\"customOptions\"\n [multiple]=\"selectionType === 'SINGLE' ? false : true\"\n (click)=\"selectItems()\"\n [(selectedItems)]=\"selectedValue\"\n ></lib-dropdown>\n <div *ngIf=\"validationFailed\" class=\"text-danger mb-2\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\n\nexport interface Attachment {\n fileId: string;\n fileName: string;\n fileUrl: string;\n}\n\n@Component({\n selector: 'lib-file-picker-fields',\n templateUrl: './file-picker-fields.component.html',\n styleUrls: ['./file-picker-fields.component.scss'],\n})\nexport class FilePickerFieldsComponent {\n @Input() question: any = {};\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n multiFileUploads: boolean = true;\n fileTypes: string[] = [];\n fileSize: number = 0;\n fileSizeUnit: string = '';\n totalFileSize: number = 0;\n initialFileSize: number = 0;\n initialTotalSize: number = 0;\n dragAndDrop: boolean = true;\n previewUploadedFiles: boolean = true;\n validationFailed: boolean = false;\n validationMessage: string = '';\n attachments: Attachment[] = [];\n\n avatarPicker: boolean = false;\n files: any;\n\n handleFileTypeNotAllowed(fileType: string): void {\n this.validationFailed = true;\n this.validationMessage = 'File type not allowed';\n }\n\n handleFileSize(event: string): void {\n this.validationFailed = true;\n if (event === 'File size exceeds the limit') {\n this.validationMessage = `${event} ${this.initialFileSize} ${this.fileSizeUnit}`;\n } else if (event === 'Total size exceeds the limit') {\n this.validationMessage = `${event} ${this.initialTotalSize} ${this.fileSizeUnit}`;\n } else {\n this.validationMessage = event;\n }\n this.clearValidationMessageAfterTimeout();\n }\n\n clearValidationMessageAfterTimeout(): void {\n setTimeout(() => {\n this.validationMessage = '';\n this.validationFailed = false;\n }, 5000); // Timeout set to 5 seconds\n }\n\n\n handleFinalArray(fileType: any[]): void {\n const extractedData = fileType.map((item: any) => ({\n name: item._file.name,\n size: item._file.size,\n type: item._file.type,\n }));\n const jsonString = JSON.stringify(extractedData);\n this.question.answer = fileType;\n }\n\n ngOnInit() {\n this.valueAssigned();\n }\n\n valueAssigned() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.multiFileUploads =\n this.question.formElement.appearance.multiFileUploads;\n this.dragAndDrop = this.question.formElement.appearance.dragAndDrop;\n this.previewUploadedFiles =\n this.question.formElement.appearance.previewUploadedFiles;\n this.fileTypes = this.question.formElement.validation.fileTypes;\n this.fileSizeUnit = this.question.formElement.validation.fileSizeUnit;\n this.avatarPicker = this.question.formElement.appearance.avatarPicker;\n this.initialFileSize = this.question.formElement.validation?.fileSize;\n this.fileSize = this.convertToBytes(\n this.initialFileSize,\n this.fileSizeUnit\n );\n this.initialTotalSize = this.question.formElement.validation?.totalFileSize;\n this.totalFileSize = this.convertToBytes(\n this.initialTotalSize,\n this.fileSizeUnit\n );\n\n if (this.question.answer) {\n this.files = this.question.answer;\n }\n\n this.attachments = this.question?.attachments;\n }\n convertToBytes(size: number, unit: string): number {\n const units: { [key: string]: number } = {\n B: 1,\n KB: 1024,\n MB: 1024 * 1024,\n GB: 1024 * 1024 * 1024,\n };\n return size * (units[unit.toUpperCase()] || 1);\n }\n\n selectedFile!: File;\n selectedFiles: any = [];\n\n onFileChange(event: any) {\n const file: File = event.target.files[0];\n this.selectedFile = file;\n this.selectedFiles.push(this.selectedFile);\n this.question.answer = this.selectedFiles;\n }\n\n deleteFiles(event: any) {\n this.question.deleteFiles = event;\n this.question.attachments = this.question.attachments.filter(\n (item: any) => {\n return !event.includes(item.fileId);\n }\n );\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <lib-docUpload\n [totalSize]=\"totalFileSize\"\n [fileAllowed]=\"fileTypes\"\n [multiple]=\"multiFileUploads\"\n [fileSize]=\"fileSize\"\n [avatarPicker]=\"avatarPicker\"\n (fileTypeNotAllowed)=\"handleFileTypeNotAllowed($event)\"\n (fileSizeAllowed)=\"handleFileSize($event)\"\n (finalArray)=\"handleFinalArray($event)\"\n [attachments] = \"attachments\"\n (deleteFiles)=\"deleteFiles($event)\"\n [files]=\"files\"\n ></lib-docUpload>\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n","import { Component, Input, ViewChild, ElementRef } from '@angular/core';\nimport { GoogleMap } from '@angular/google-maps';\n\n@Component({\n selector: 'lib-location-fields',\n templateUrl: './location-fields.component.html',\n styleUrls: ['./location-fields.component.scss'],\n})\nexport class LocationFieldsComponent {\n @Input() question: any = {};\n @ViewChild('mapSearchField')\n searchField!: ElementRef;\n @ViewChild(GoogleMap) map!: GoogleMap;\n\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n defaultZoomLevel: number = 0;\n setCurrentPosition: boolean = false;\n allowFullScreen: boolean = false;\n latitude: number = 0;\n longitude: number = 0;\n regionBoundary: boolean = false;\n region: string = '';\n showGoogleMap!: boolean;\n mapConfigurations: any = {};\n\n ngOnInit() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.defaultZoomLevel =\n this.question.formElement.appearance.defaultZoomLevel;\n this.setCurrentPosition =\n this.question.formElement.appearance.setCurrentPosition;\n this.allowFullScreen = this.question.formElement.appearance.allowFullScreen;\n this.latitude = this.question.formElement.appearance.latitude;\n this.longitude = this.question.formElement.appearance.longitude;\n this.regionBoundary = this.question.formElement.validation.regionBoundary;\n this.region = this.question.formElement.validation.region;\n this.mapConfigurations = {\n disableDefaultUI: true,\n fullscreenControl: this.allowFullScreen,\n zoomControl: true,\n };\n }\n\n ngAfterViewInit(): void {\n const searchBox = new google.maps.places.SearchBox(\n this.searchField.nativeElement\n );\n\n this.map.controls[google.maps.ControlPosition.TOP_CENTER].push(\n this.searchField.nativeElement\n );\n\n searchBox.addListener('places_changed', () => {\n const places = searchBox.getPlaces();\n if (places?.length === 0) {\n return;\n }\n\n const bounds = new google.maps.LatLngBounds();\n places?.forEach((place) => {\n if (!place.geometry || !place.geometry.location) {\n return;\n }\n\n if (place.geometry.viewport) {\n // Only geocodes have viewport.\n bounds.union(place.geometry.viewport);\n } else {\n bounds.extend(place.geometry.location);\n }\n });\n\n this.map.fitBounds(bounds);\n });\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <div class=\"input-group\">\n <input\n type=\"text\"\n class=\"form-control location-input\"\n placeholder=\"Enter location\"\n #locationInput\n />\n </div>\n\n <input #mapSearchField class=\"my-map-search-field\" type=\"text\" />\n <google-map width=\"100%\" [options]=\"mapConfigurations\"></google-map>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'lib-mail-fields',\n templateUrl: './mail-fields.component.html',\n styleUrls: ['./mail-fields.component.scss'],\n})\nexport class MailFieldsComponent {\n @Input() question: any = {};\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n placeholder: string = '';\n expectedDomains: string[] = [];\n regularExpression: string = '';\n email: string = '';\n validationFailed: boolean = false;\n validationMessage: string = '';\n\n ngOnInit() {\n this.valueAssigned();\n }\n\n valueAssigned() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.placeholder = this.question.formElement?.appearance?.placeholder || '';\n this.expectedDomains =\n this.question?.formElement?.validation?.expectedDomains\n ?.split(',')\n .map((domain: any) => domain.trim());\n this.regularExpression =\n this.question.formElement.validation.regularExpression;\n this.email = this.question?.answer \n }\n\n validateEmail() {\n this.validationFailed = false;\n this.validationMessage = '';\n const enteredEmail = this.email?.trim().toLowerCase();\n if (this.required && !this.email) {\n this.validationFailed = true;\n this.validationMessage = 'This is a required question';\n this.question.validation = false;\n } else if (this.expectedDomains) {\n const isValidEmail = this.expectedDomains?.some((domain) =>\n enteredEmail.endsWith(domain)\n );\n this.validationFailed = !isValidEmail;\n this.validationMessage = 'Please enter valid email address';\n if (this.validationFailed) {\n this.question.validation = false;\n }\n else {\n this.question.validation = true;\n }\n }\n else {\n this.question.validation = true;\n }\n }\n validateInput(event: any) {\n this.question.answer = event.target.value;\n this.validateEmail();\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <input\n type=\"email\"\n class=\"form-control mb-2 height\"\n [placeholder]=\"placeholder\"\n [(ngModel)]=\"email\"\n (blur)=\"validateEmail()\"\n (input)=\"validateInput($event)\"\n [class.invalid]=\"validationFailed\"\n />\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { DataService } from './data.service';\n\ninterface CountryData {\n value: string;\n label: string;\n image: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CountryService {\n private apiUrl: string = '';\n header: any = {};\n\n constructor(private http: HttpClient, private dataService: DataService) {\n this.dataService.apiUrl$.subscribe((data) => {\n this.apiUrl = data;\n });\n }\n\n loadCountryDetails(questionId: string, page: number, size: number, searchKey: string): Observable<any> {\n return this.http.get<any>(`${this.apiUrl}/api/public/json/country/${questionId}?page=${page}&size=${size}&searchKey=${searchKey}`);\n }\n\n processCountryDetails(\n data: any[],\n displayFlag: boolean,\n displayCode: boolean,\n showCountryName: boolean\n ): CountryData[] {\n const countryDetails: CountryData[] = [];\n\n data.forEach((country) => {\n const name = showCountryName ? country.name || '' : '';\n let flag = '';\n if (displayFlag && country.flag) {\n flag = country.flag;\n }\n\n if (\n displayCode &&\n country.isd &&\n country.isd.root &&\n country.isd.suffixes?.length > 0\n ) {\n country.isd.suffixes.forEach((suffix: string) => {\n const isdCode = `${country.isd.root}${suffix}`;\n countryDetails.push({\n value: isdCode,\n label: `${name} ${isdCode}`,\n image: flag,\n });\n });\n } else if (displayCode) {\n countryDetails.push({\n value: name,\n label: country.isd?.root || '',\n image: flag,\n });\n } else if (!displayCode && !displayFlag) {\n countryDetails.push({\n value: name,\n label: '',\n image: '',\n });\n }\n });\n\n return countryDetails;\n }\n}\n","import { Component, EventEmitter, Input, Output, OnInit } from '@angular/core';\nimport { CountryService } from '../../services/countryService';\n\ninterface CountryData {\n value: string;\n label: string;\n image: string;\n}\n\ninterface filteredCountry {\n name: string;\n flag: string;\n isd: {};\n languages: {};\n}\n\n@Component({\n selector: 'lib-mobile-fields',\n templateUrl: './mobile-fields.component.html',\n styleUrls: ['./mobile-fields.component.scss'],\n})\nexport class MobileFieldsComponent implements OnInit {\n @Input() question: any = {};\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n placeholder: string = '';\n displayCountryCode: boolean = true;\n displayFlag: boolean = true;\n displayCode: boolean = true;\n showCountryName: boolean = true;\n beautifyNumbers: boolean = true;\n countryWiseValidation: boolean = true;\n countryDetails: CountryData[] = [];\n selectedCountry: CountryData[] = [];\n validationFailed: boolean = false;\n validationMessage: string = '';\n mobileNumber: string = '';\n filteredCountry: filteredCountry[] = [];\n questionId: string = '';\n currentPage: number = 0;\n size: number = 30;\n totalPages: number = 0;\n searchKey: string = '';\n constructor(private countryService: CountryService) { }\n\n ngOnInit() {\n this.valueAssigned();\n }\n\n valueAssigned() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.placeholder = this.question.formElement.appearance.placeholder;\n this.displayCountryCode =\n this.question.formElement.appearance.displayCountryCode;\n this.displayFlag = this.question.formElement.appearance.displayFlag;\n this.displayCode = this.question.formElement.appearance.displayCode;\n this.showCountryName = this.question.formElement.appearance.showCountryName;\n this.beautifyNumbers = this.question.formElement.appearance.beautifyNumbers;\n this.countryWiseValidation =\n this.question.formElement.validation.countryWiseValidation;\n this.questionId = this.question.id;\n this.loadCountry(this.questionId, this.currentPage, this.size, this.searchKey);\n }\n\n\n initializeAnswer() {\n const [countryCode, mobileNumber] = this.question?.answer?.split(' ');\n this.mobileNumber = mobileNumber || '';\n\n const matchedCountry = this.countryDetails.find(country => country.value === countryCode);\n if (matchedCountry) {\n this.selectedCountry.push(matchedCountry);\n } \n }\n\n onCountryChange() {\n this.validationFailed = false;\n this.validationMessage = '';\n\n if (this.required && (!this.mobileNumber || this.selectedCountry.length === 0)) {\n this.validationFailed = true;\n this.validationMessage = 'This is a required question';\n } else {\n this.updateAnswer();\n }\n\n this.updateAnswer();\n }\n\n onMobileNumberChange() {\n this.updateAnswer();\n }\n\n updateAnswer() {\n if (this.selectedCountry.length > 0 && this.mobileNumber) {\n const countryCode = this.selectedCountry[0].value;\n this.question.answer = `${countryCode} ${this.mobileNumber}`;\n } else {\n this.question.answer = '';\n }\n }\n\n validateMobile() {\n this.validationFailed = false;\n this.validationMessage = '';\n\n if (this.required && (!this.mobileNumber || this.selectedCountry.length === 0)) {\n this.validationFailed = true;\n this.validationMessage = 'This is a required question';\n } else {\n this.updateAnswer();\n }\n }\n\n loadCountry(id: string, page: number, size: number, searchKey: string) {\n this.countryService.loadCountryDetails(this.questionId, this.currentPage, this.size, this.searchKey).subscribe((data) => {\n if (this.totalPages === 0) {\n this.totalPages = data.result.totalPages;\n }\n\n this.countryDetails = [...this.countryDetails, ...this.countryService.processCountryDetails(\n data.result.content,\n this.displayFlag,\n this.displayCode,\n this.showCountryName\n )];\n\n // if (this.currentPage < this.totalPages - 1) {\n // this.currentPage++;\n // this.loadCountry(this.questionId, this.currentPage, this.size, this.searchKey);\n // }\n if (this.question.answer) {\n this.initializeAnswer();\n }\n });\n\n }\n\n onScroll() {\n if (this.currentPage < this.totalPages) {\n this.currentPage++;\n this.loadCountry(this.questionId, this.currentPage, this.size, this.searchKey);\n }\n }\n\n}\n\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <div class=\"input-group mb-2\">\n <div class=\"col-xs-5 col-5 col-md-3 px-0 pe-2 ps-2\">\n <lib-dropdown\n [items]=\"countryDetails\"\n [multiple]=\"false\"\n [(selectedItems)]=\"selectedCountry\"\n (selectedItemsChange)=\"onCountryChange()\"\n (onScroll)=\"onScroll()\"\n ></lib-dropdown>\n </div>\n <input\n type=\"number\"\n class=\"form-control col-xs-7 col-7 col-md-9 height mobileField\"\n [placeholder]=\"placeholder\"\n aria-label=\"Mobile Number\"\n [class.invalid]=\"validationFailed\"\n (blur)=\"validateMobile()\"\n [(ngModel)]=\"mobileNumber\"\n (ngModelChange)=\"onMobileNumberChange()\"\n />\n </div>\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Logic } from '../../models/logic.model';\n\n@Component({\n selector: 'lib-number-fields',\n templateUrl: './number-fields.component.html',\n styleUrls: ['./number-fields.component.scss'],\n})\nexport class NumberFieldsComponent {\n @Input() question: any = {};\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n upDown!: boolean;\n allowNegativeValues!: boolean;\n placeholder: string ='';\n min!: number;\n max!: number;\n enteredNumber!: number;\n validationFailed: boolean = false;\n validationMessage: string = '';\n\n ngOnInit() {\n this.valueAssigned();\n }\n\n valueAssigned() { \n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.upDown = this.question.formElement.appearance.upAndDownButton;\n this.allowNegativeValues =\n this.question.formElement.appearance.allowNegativeValues;\n this.placeholder = this.question.formElement?.appearance?.placeholder || '';\n this.min = this.question.formElement.validation.min;\n this.max = this.question.formElement.validation.max;\n this.enteredNumber = this.question?.answer;\n if(this.question.childLogics && this.question.answer){\n this.updateChildLogics(this.question)\n }\n }\n validateNumber() {\n this.validationFailed = false;\n this.validationMessage = '';\n if (this.required && !this.enteredNumber) {\n this.validationFailed = true;\n this.validationMessage = `Please enter a valid number`;\n this.question.validation = false;\n } else if (!this.allowNegativeValues && this.enteredNumber < 0) {\n this.validationFailed = true;\n this.validationMessage = 'Please enter a positive number';\n this.question.validation = false;\n } else if (this.enteredNumber < this.min || this.enteredNumber > this.max) {\n this.validationFailed = true;\n this.validationMessage = `Please enter a valid number between ${this.min} and ${this.max}`;\n this.question.validation = false;\n }\n else {\n this.question.validation = true;\n }\n if(this.question.childLogics){\n this.updateChildLogics(this.question);\n }\n }\n\n validateInput(event: any) {\n this.question.answer = event.target.value; \n if(this.question.childLogics){\n this.updateChildLogics(this.question);\n }\n }\n\n updateChildLogics(question:any) {\n if (question.childLogics && Array.isArray(question.childLogics)) {\n question.childLogics.forEach((childLogic:any) => {\n if(question.answer==''){\n childLogic.showLogic=false;\n this.clearAnswer(childLogic);\n return;\n } \n if (this.evaluateCondition(question.answer, childLogic.condition, childLogic.inputValue)) {\n childLogic.showLogic = true;\n }\n else{\n childLogic.showLogic = false;\n this.clearAnswer(childLogic);\n }\n });\n }\n }\n\n evaluateCondition(answer:any, condition:any, inputValue:any) { \n switch (condition) {\n case \">\":\n return answer > Number(inputValue);\n case \"<\":\n return answer < Number(inputValue);\n case \">=\":\n return answer >= Number(inputValue);\n case \"<=\":\n return answer <= Number(inputValue);\n case \"=\":\n return answer == inputValue;\n default:\n return false;\n }\n }\n\n clearAnswer(childLogic:Logic){\n childLogic.formElements.forEach((formElement:any)=>{\n if(formElement.entityType == 'QUESTION'){ \n formElement.element.answer = '';\n }\n })\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <input\n type=\"number\"\n class=\"form-control mb-2 height\"\n [placeholder]=\"placeholder\"\n [class.hide-spin-buttons]=\"!upDown\"\n (blur)=\"validateNumber()\"\n [(ngModel)]=\"enteredNumber\"\n [class.invalid]=\"validationFailed\"\n (input)=\"validateInput($event)\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n />\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'lib-password-fields',\n templateUrl: './password-fields.component.html',\n styleUrls: ['./password-fields.component.scss'],\n})\nexport class PasswordFieldsComponent {\n @Input() question: any = {};\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n confirmPassword!: boolean;\n displayStrength!: boolean;\n viewButton!: boolean;\n maxLength!: number;\n minLength!: number;\n requireLowercaseLetters!: boolean;\n requireUppercaseLetters!: boolean;\n requireNumbers!: boolean;\n requireSpecialCharacters!: boolean;\n allowedSpecialCharacters: string[] = [];\n validationMessage: string = '';\n cnfrmValidationMessage: string = '';\n validationFailed: boolean = false;\n validatedCnfrmPassword: boolean = false;\n enteredPassword: string = '';\n enteredCnfrmPassword: string = '';\n passwordStrength: number = 0;\n questionId:string='';\n\n ngOnInit() {\n this.valueAssigned();\n }\n\n valueAssigned() {\n this.questionId=this.question.id;\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.confirmPassword = this.question.formElement.appearance.confirmPassword;\n this.displayStrength = this.question.formElement.appearance.displayStrong;\n this.viewButton = this.question.formElement.appearance.viewButton;\n this.maxLength = this.question.formElement.validation.maxLength;\n this.minLength = this.question.formElement.validation.minLength;\n this.requireLowercaseLetters =\n this.question.formElement.validation.requireLowercaseLetters;\n this.requireUppercaseLetters =\n this.question.formElement.validation.requireUppercaseLetters;\n this.requireNumbers = this.question.formElement.validation.requireNumbers;\n this.requireSpecialCharacters =\n this.question.formElement.validation.requireSpecialCharacters;\n if (this.requireSpecialCharacters) {\n this.allowedSpecialCharacters =\n this.question.formElement.validation.allowedSpecialCharacters\n .split(',')\n .map((char: any) => char.trim());\n }\n this.enteredPassword = this.question?.answer;\n }\n\n togglePasswordVisibility() {\n let passwordField = document.getElementById(\n 'passwordField'+this.questionId\n ) as HTMLInputElement;\n let eyeIcon = document.getElementById(\n 'passwordEyeIcon'+this.questionId\n ) as HTMLInputElement;\n\n if (passwordField.type === 'password') {\n passwordField.type = 'text';\n eyeIcon.classList.remove('bi-eye-fill');\n eyeIcon.classList.add('bi-eye-slash-fill');\n } else {\n passwordField.type = 'password';\n eyeIcon.classList.remove('bi-eye-slash-fill');\n eyeIcon.classList.add('bi-eye-fill');\n }\n }\n toggleCnfrmPasswordVisibility() {\n let passwordField = document.getElementById(\n 'cnfrmPasswordField'+this.questionId\n ) as HTMLInputElement;\n let eyeIcon = document.getElementById(\n 'CnfrmPasswordEyeIcon'+this.questionId\n ) as HTMLInputElement;\n\n if (passwordField.type === 'password') {\n passwordField.type = 'text';\n eyeIcon.classList.remove('bi-eye-fill');\n eyeIcon.classList.add('bi-eye-slash-fill');\n } else {\n passwordField.type = 'password';\n eyeIcon.classList.remove('bi-eye-slash-fill');\n eyeIcon.classList.add('bi-eye-fill');\n }\n }\n\n checkPasswordMatch() {\n this.validatedCnfrmPassword = false;\n this.cnfrmValidationMessage = '';\n if (this.required && this.confirmPassword && !this.enteredCnfrmPassword) {\n this.validatedCnfrmPassword = true;\n this.cnfrmValidationMessage = `Please enter a valid password`;\n this.question.validation = false;\n }\n else if (this.enteredPassword != this.enteredCnfrmPassword && this.confirmPassword) {\n this.validatedCnfrmPassword = true;\n this.cnfrmValidationMessage = 'Passwords do not match';\n this.question.validation = false;\n }\n else{\n this.question.validation = true;\n }\n this.validatePassword();\n }\n\n \n\n validatePassword() {\n this.validationFailed = false;\n this.validationMessage = '';\n if (this.required && !this.enteredPassword) {\n this.validationFailed = true;\n this.validationMessage = `Please enter a valid password`;\n this.question.validation = false;\n } else if (\n this.requireLowercaseLetters ||\n this.requireUppercaseLetters ||\n this.requireNumbers ||\n this.requireSpecialCharacters ||\n this.minLength ||\n this.maxLength\n ) { \n const lowercaseRegex = /[a-z]/;\n const uppercaseRegex = /[A-Z]/;\n const numberRegex = /\\d/;\n const specialCharacterRegex = new RegExp(`[${this.allowedSpecialCharacters.join('')}]`);\n const otherSpecialCharacterRegex = new RegExp(`[^a-zA-Z0-9${this.allowedSpecialCharacters.join('')}]`);\n \n let lowerCaseValidate = lowercaseRegex.test(this.enteredPassword);\n let upperCaseValidate = uppercaseRegex.test(this.enteredPassword);\n let containsNumber = numberRegex.test(this.enteredPassword);\n let containsSpecialCharacter = specialCharacterRegex.test(this.enteredPassword);\n let containsOtherSpecialCharacter = otherSpecialCharacterRegex.test(this.enteredPassword);\n \n if (!lowerCaseValidate && this.requireLowercaseLetters) {\n this.validationFailed = true;\n this.validationMessage = 'Password must contain at least one lowercase letter';\n this.question.validation = false;\n } else if (!upperCaseValidate && this.requireUppercaseLetters) {\n this.validationFailed = true;\n this.validationMessage = 'Password must contain at least one uppercase letter';\n this.question.validation = false;\n } else if (!containsNumber && this.requireNumbers) {\n this.validationFailed = true;\n this.validationMessage = 'Password must contain at least one number';\n this.question.validation = false;\n }else if (this.enteredPassword.length < this.minLength) {\n this.validationFailed = true;\n this.validationMessage = `Password must contain at least ${this.minLength} characters`;\n this.question.validation = false;\n } else if (this.enteredPassword.length > this.maxLength) {\n this.validationFailed = true;\n this.validationMessage = `Password must be less than ${this.maxLength} characters`;\n this.question.validation = false;\n } else if (!containsSpecialCharacter && this.allowedSpecialCharacters.length>0) {\n this.validationFailed = true;\n this.validationMessage = `Password must contain at least one special character from ${this.allowedSpecialCharacters}`;\n this.question.validation = false;\n } else if(containsOtherSpecialCharacter && this.allowedSpecialCharacters.length>0){\n this.validationFailed = true;\n this.validationMessage = 'Password contains an invalid special character';\n this.question.validation = false;\n } else if(this.confirmPassword){\n this.checkPasswordMatch();\n }\n else {\n this.question.validation = true;\n } \n } else { \n this.passwordStrength=this.calculateStrength(this.enteredPassword);\n this.question.validation = true;\n }\n this.passwordStrength = this.calculateStrength(this.enteredPassword)\n}\n\n validateInput(event:any){\n this.question.answer=event.target.value;\n this.validatePassword(); \n }\n\n validateCnfrm(event:any){\n this.checkPasswordMatch();\n }\n\n calculateStrength(password:any) {\n const lengthStrength = Math.min(100, (password.length / 12) * 100); // Assume maximum length of 12 for full points\n const lowercaseStrength = /[a-z]/.test(password) ? 20 : 0;\n const uppercaseStrength = /[A-Z]/.test(password) ? 20 : 0;\n const numberStrength = /\\d/.test(password) ? 20 : 0;\n const specialCharacterStrength = /[!@#$%^&*(),.?\":{}|<>]/.test(password) ? 20 : 0; // Adjust this regex based on your allowed special characters\n \n return lengthStrength + lowercaseStrength + uppercaseStrength + numberStrength + specialCharacterStrength;\n }\n}\n\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"password-input-wrapper mb-2\">\n <div class=\"input-wrapper\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label [for]=\"'passwordField'+questionId\">{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <input\n type=\"password\"\n class=\"form-control mb-2 height\"\n [id]=\"'passwordField'+questionId \"\n (blur)=\"validatePassword()\"\n [(ngModel)]=\"enteredPassword\"\n [class.invalid]=\"validationFailed\"\n (input)=\"validateInput($event)\"\n />\n <button\n id=\"togglePasswordBtn\"\n class=\"toggle-password-btn\"\n (click)=\"togglePasswordVisibility()\"\n *ngIf=\"viewButton\"\n >\n <i class=\"bi bi-eye-fill\" [id]=\"'passwordEyeIcon'+questionId\"></i>\n </button>\n </div>\n <div class=\"password-strength-meter\" *ngIf=\"displayStrength\">\n <div class=\"progress\">\n <div\n class=\"progress-bar\"\n role=\"progressbar\"\n [style.width]=\"passwordStrength + '%'\"\n [class.bg-danger]=\"passwordStrength < 30\"\n [class.bg-warning]=\"passwordStrength >= 30 && passwordStrength < 70\"\n [class.bg-success]=\"passwordStrength >= 70\"\n ></div>\n </div>\n </div>\n <div *ngIf=\"validationFailed\" class=\"text-danger mb-2\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n\n <div class=\"cnfrmPasswordWrapper\" *ngIf=\"confirmPassword\">\n <label for=\"'cnfrmPasswordField'+questionId\">Confirm password</label>\n <input\n type=\"password\"\n class=\"form-control mb-2 height\"\n [id]=\"'cnfrmPasswordField'+questionId\"\n (blur)=\"checkPasswordMatch()\"\n [(ngModel)]=\"enteredCnfrmPassword\"\n [class.invalid]=\"validatedCnfrmPassword\"\n (input)=\"validateCnfrm($event)\"\n />\n <button\n id=\"toggleCnfrmPasswordBtn\"\n class=\"toggle-password-btn\"\n (click)=\"toggleCnfrmPasswordVisibility()\"\n *ngIf=\"viewButton\"\n >\n <i class=\"bi bi-eye-fill\" [id]=\"'CnfrmPasswordEyeIcon'+questionId\"></i>\n </button>\n </div>\n <div *ngIf=\"validatedCnfrmPassword\" class=\"text-danger\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ cnfrmValidationMessage }}\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormService } from '../../services/form.service';\n\n@Component({\n selector: 'lib-radio-button-fields',\n templateUrl: './radio-button-fields.component.html',\n styleUrls: ['./radio-button-fields.component.scss'],\n})\nexport class RadioButtonFieldsComponent {\n @Input() question: any = {};\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n color: string = '';\n minimumSelection: number = 0;\n maximumSelection: number = 0;\n optionType: string = '';\n lookupTable: string = '';\n customOptions: any[] = [];\n database: any = {};\n api: any = {};\n apiOptions: any[] = [];\n selectedOption: any;\n validationFailed!: boolean;\n validationMessage: string = '';\n\n constructor(private formService: FormService) { }\n\n ngOnInit() {\n this.valueAssigned();\n }\n\n valueAssigned() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.color = this.question.formElement.appearance.color;\n this.optionType = this.question.formElement.option.optionType;\n\n switch (this.optionType) {\n case 'OPTION':\n this.customOptions = this.question.formElement.option.customOptions;\n this.initializeOption();\n break;\n case 'LOOKUP':\n this.lookupTable = this.question.formElement.option.lookupTable;\n this.fetchDataFromLookup();\n break;\n case 'DATABASE':\n this.database = this.question.formElement.option.database;\n this.fetchDataFromDatabase();\n break;\n case 'API':\n this.api = this.question.formElement.option.api;\n this.fetchDataFromAPI();\n break;\n default:\n console.warn('Unknown option type:', this.optionType);\n }\n\n if(this.question.childLogics && this.question.answer){\n this.updateChildLogics(this.question)\n }\n }\n\n initializeOption() {\n if (this.question.answer) {\n const dataType = typeof this.customOptions[0]?.value;\n let convertedAnswer;\n\n switch (dataType) {\n case 'number':\n convertedAnswer = Number(this.question.answer);\n break;\n case 'boolean':\n convertedAnswer = (this.question.answer === 'true');\n break;\n case 'string':\n convertedAnswer = String(this.question.answer);\n break;\n default:\n convertedAnswer = this.question.answer;\n }\n this.selectedOption = convertedAnswer;\n }\n }\n\n fetchDataFromLookup() {\n this.formService.fetchDataFromLookup(this.lookupTable).subscribe(\n (response) => {\n this.customOptions = response.result.values.map(\n (item: { value: string; label: string }) => ({\n value: item.value,\n label: item.label,\n })\n );\n this.initializeOption();\n },\n (error) => {\n console.error('HTTP Error:', error);\n }\n );\n }\n\n fetchDataFromDatabase() {\n const transformedDatabase = this.transformDatabaseObject(this.database);\n this.formService.fetchDataFromDatabase(transformedDatabase).subscribe(\n (response) => {\n if (response.success) {\n this.customOptions = response.result.map(\n (item: { value: string; label: string }) => ({\n value: item.value,\n label: item.label,\n })\n );\n this.initializeOption();\n } else {\n console.error('Error fetching data from database:', response.message);\n }\n },\n (error) => {\n console.error('HTTP Error:', error);\n }\n );\n }\n\n transformDatabaseObject(database: any) {\n return {\n tableName: database.tableName,\n valueField: database.valueField,\n labelField: database.labelField,\n criteria: database.criteria.map((criteria: any) => ({\n field: criteria.field,\n valueSource:criteria?.valueSource,\n condition: criteria.condition,\n value: criteria.inputValue,\n logicalOperator: criteria.logicalOperator,\n })),\n };\n }\n\n fetchDataFromAPI() {\n const apiConfig = this.api;\n this.formService.fetchDataFromExternalAPI(apiConfig.url).subscribe(\n (response) => {\n const data = this.extractDataByPath(response, apiConfig.pathToValue);\n this.customOptions = data.map((item: any) => ({\n value: item[apiConfig.valueField],\n label: item[apiConfig.labelField],\n }));\n this.initializeOption();\n },\n (error) => {\n console.error('HTTP Error:', error);\n }\n );\n }\n\n extractDataByPath(data: any, path: string) {\n return path.split('.').reduce((acc, part) => acc && acc[part], data);\n }\n\n validateInput() {\n this.question.answer = this.selectedOption;\n this.validationFailed = false;\n this.validationMessage = '';\n if (this.required && !this.selectedOption) {\n this.validationFailed = true;\n this.validationMessage = 'This is a required question';\n this.question.validation = false;\n }\n else {\n this.question.validation = true;\n }\n if (this.question.childLogics) {\n this.updateChildLogics(this.question);\n }\n }\n\n updateChildLogics(question: any) {\n if (question.childLogics && Array.isArray(question.childLogics)) {\n question.childLogics.forEach((childLogic: any) => {\n childLogic.showLogic = this.evaluateCondition(this.selectedOption, childLogic.condition, childLogic.inputValue);\n });\n }\n }\n\n evaluateCondition(answer: any, condition: string, inputValue: any): boolean {\n const stringInputValue = Array.isArray(inputValue) ? inputValue.map(val => val.toString()) : inputValue;\n\n switch (condition) {\n case \"!=\":\n return answer != stringInputValue;\n case \"=\":\n return answer == stringInputValue;\n case \"IN\":\n return stringInputValue.includes(answer);\n case \"NOT IN\":\n return !(stringInputValue.includes(answer))\n default:\n return false;\n }\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n\n <div class=\"checkboxField\" *ngFor=\"let option of customOptions\">\n <input\n class=\"formCheckbox mb-2\"\n type=\"radio\"\n [name]=\"question.id\"\n [id]=\"option.value\"\n [value]=\"option.value\"\n [style.accent-color]=\"color\"\n (blur)=\"validateInput()\"\n [(ngModel)]=\"selectedOption\"\n (ngModelChange)=\"validateInput()\"\n />\n <label\n class=\"formCheckLabel ms-2 me-2 mb-2\"\n [for]=\"option.value\"\n *ngIf=\"optionType == 'OPTION'\"\n >{{ option.value }}</label\n >\n <label\n class=\"formCheckLabel ms-2 me-2 mb-2\"\n [for]=\"option.value\"\n *ngIf=\"optionType == 'LOOKUP' || 'DATABASE' || 'API'\"\n >{{ option.label }}</label\n >\n </div>\n\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AngularEditorConfig } from '@kolkov/angular-editor';\n\n@Component({\n selector: 'lib-rich-text-editor-fields',\n templateUrl: './rich-text-editor-fields.component.html',\n styleUrls: ['./rich-text-editor-fields.component.scss'],\n})\nexport class RichTextEditorFieldsComponent {\n @Input() question: any = {};\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n numberOfRows!: number;\n limitedCharacters: boolean = false;\n counts: number = 0;\n htmlContent: string = '';\n characterCount!: number;\n validationFailed: boolean = false;\n validationMessage: string = '';\n\n config: AngularEditorConfig = {\n editable: true,\n spellcheck: true,\n height: '15rem',\n minHeight: '5rem',\n translate: 'no',\n defaultParagraphSeparator: 'p',\n defaultFontName: 'Arial',\n toolbarHiddenButtons: [['bold']],\n customClasses: [\n {\n name: 'quote',\n class: 'quote',\n },\n {\n name: 'redText',\n class: 'redText',\n },\n {\n name: 'titleText',\n class: 'titleText',\n tag: 'h1',\n },\n ],\n };\n\n ngOnInit() {\n this.valueAssigned(); \n }\n\n valueAssigned() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.numberOfRows = this.question.formElement.appearance.numberOfRows;\n this.limitedCharacters =\n this.question.formElement.validation.limitedCharacters;\n this.counts = this.question.formElement.validation.count;\n this.numberOfRows = this.question.formElement.appearance.numberOfRows;\n this.limitedCharacters =\n this.question.formElement.validation.limitedCharacters;\n if (this.limitedCharacters) {\n this.characterCount = this.question.formElement.validation.count;\n }\n this.htmlContent = this.question?.answer;\n }\n\n validateEditor() {\n this.validationFailed = false;\n this.validationMessage = '';\n if (!this.htmlContent && this.required) {\n this.validationFailed = true;\n this.validationMessage = 'This is a required question';\n }\n }\n\n validateInput(event: any) {\n if (this.htmlContent.length >= this.characterCount) {\n this.htmlContent = this.htmlContent.substring(0, this.characterCount);\n }\n this.question.answer = this.htmlContent; \n }\n\n updateAnswer(content: string) {\n this.question.answer = content;\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <angular-editor\n [(ngModel)]=\"htmlContent\"\n [config]=\"config\"\n (input)=\"validateInput($event)\"\n (blur)=\"validateEditor()\"\n (ngModelChange)=\"updateAnswer($event)\"\n ></angular-editor>\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-selection-matrix-fields',\n templateUrl: './selection-matrix-fields.component.html',\n styleUrls: ['./selection-matrix-fields.component.scss'],\n})\nexport class SelectionMatrixFieldsComponent {\n @Input() question: any = {};\n @Input() acceptedLanguage: string ='';\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n selectionMatrixColumn: string[] = [];\n selectionMatrixLabel: string[] = [];\n selectedOptions: string[] = [];\n validationFailed!:boolean;\n validationMessage:string='';\n minSelectionValue!:number;\n\n ngOnInit() {\n this.valueAssigned(); \n }\n\n valueAssigned() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.selectionMatrixColumn = this.question?.formElement?.selectionMatrixColumn;\n this.selectionMatrixLabel = this.question?.formElement?.selectionMatrixLabel;\n this.minSelectionValue= this.question?.formElement?.validation?.minSelectionValue;\n if(this.question.answer){\n this.selectedOptions=this.question.answer;\n }\n }\n\n onSelectionChange(rowIndex: number, value: string) {\n this.selectedOptions[rowIndex] = value;\n this.validateInput();\n }\n\n validateInput() {\n this.validationFailed = false;\n this.validationMessage = '';\n this.question.answer=this.selectedOptions;\n if(this.required && this.selectedOptions.length==0){\n this.validationFailed=true;\n this.validationMessage='This is a required question';\n this.question.validation = false;\n }\n else if(this.selectedOptions.length<this.minSelectionValue){\n this.validationFailed = true;\n this.validationMessage = `selected options must be greater than ${this.minSelectionValue}`;\n this.question.validation = false;\n }\n else{\n this.question.validation = true;\n } \n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n\n <div [ngClass]=\"{ 'labelBorder-rtl': acceptedLanguage === 'ara' }\">\n <table class=\"selectionMatrix\">\n <thead>\n <tr>\n <th></th>\n <th\n class=\"text-center table-cell-wrap\"\n *ngFor=\"let column of selectionMatrixColumn\"\n >\n {{ column }}\n </th>\n </tr>\n </thead>\n <tbody class=\"table-group-divider\">\n <tr *ngFor=\"let label of selectionMatrixLabel; let rowIndex = index\">\n <td class=\"table-cell-wrap\">{{ label }}</td>\n <td\n *ngFor=\"let column of selectionMatrixColumn; let colIndex = index\"\n class=\"text-center\"\n >\n <input\n type=\"radio\"\n id=\"radio-{{ rowIndex }}-{{ colIndex }}\"\n name=\"row-{{ rowIndex }}\"\n class=\"selectionRadio\"\n [value]=\"label + '_' + column\"\n [(ngModel)]=\"selectedOptions[rowIndex]\"\n (ngModelChange)=\"\n onSelectionChange(rowIndex, label + '_' + column)\n \"\n />\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-signature-fields',\n templateUrl: './signature-fields.component.html',\n styleUrls: ['./signature-fields.component.scss'],\n})\nexport class SignatureFieldsComponent {\n @Input() question: any = {};\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n maxFileSize: number = 0;\n minFileSize: number = 0;\n\n ngOnInit() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.maxFileSize = this.question.formElement.validation.maxFileSize;\n this.minFileSize = this.question.formElement.validation.minFileSize;\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\n <div class=\"input-wrapper\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n</div>\n","import { Component, Input, Renderer2, ElementRef, EventEmitter, Output } from '@angular/core';\n\n@Component({\n selector: 'lib-slider-fields',\n templateUrl: './slider-fields.component.html',\n styleUrls: ['./slider-fields.component.scss'],\n})\nexport class SliderFieldsComponent {\n @Input() question: any = {};\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n minValue: number = 0;\n maxValue: number = 0;\n stepValue: number = 0;\n changeSliderColor: boolean = false;\n sliderColor: string = '';\n validationFailed: boolean = false;\n validationMessage: string = '';\n\n selectedValue: number = 0;\n\n constructor(private renderer: Renderer2, private el: ElementRef) { }\n\n ngOnInit() {\n\n this.valueAssigned();\n }\n\n valueAssigned() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.minValue = this.question.formElement.appearance.minValue;\n this.maxValue = this.question.formElement.appearance.maxValue;\n this.stepValue = this.question.formElement.appearance.stepValue;\n this.changeSliderColor =\n this.question.formElement.appearance.changeSliderColor;\n\n if (this.changeSliderColor) {\n this.sliderColor = this.question.formElement.appearance.sliderColor;\n }\n\n if (this.question.answer && Object.keys(this.question.answer).length>0) {\n this.selectedValue = this.question?.answer;\n } else {\n this.selectedValue = this.minValue;\n }\n }\n\n\n validateInput(event: any) {\n this.question.answer = String(this.selectedValue);\n this.question.validation = true;\n }\n\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <div class=\"sliderRow\">\n <div class=\"sliderLeft\">\n <mat-slider\n [min]=\"minValue\"\n [max]=\"maxValue\"\n [step]=\"stepValue\"\n [ngStyle]=\"{\n '--mdc-slider-active-track-color': changeSliderColor\n ? sliderColor\n : ''\n }\"\n >\n <input\n matSliderThumb\n [(ngModel)]=\"selectedValue\"\n (input)=\"validateInput($event)\"\n />\n </mat-slider>\n </div>\n <div class=\"sliderRight\">\n <label class=\"selected-count font-weight-bold\">{{ selectedValue }}</label>\n </div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { FormService } from '../../services/form.service';\nimport { DataService } from '../../services/data.service';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n@Component({\n selector: 'lib-terms-and-condition-fields',\n templateUrl: './terms-and-condition-fields.component.html',\n styleUrls: ['./terms-and-condition-fields.component.scss'],\n})\nexport class TermsAndConditionFieldsComponent {\n @Input() question: any = {};\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n fileDataUrl:any;\n private apiUrl: string = '';\n imgUrl:any\n header: any = {};\n visible:boolean=false;\n constructor(\n private formService: FormService,\n private http: HttpClient, \n private dataService: DataService\n ) {\n this.dataService.apiUrl$.subscribe((data) => {\n this.apiUrl = data;\n });\n }\n ngOnInit() {\n console.log(\"question\",this.question.\n formElement)\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.fileDataUrl=this.question.formElement.termsAndConditionType.fileUrl\n this.question;\n this.count;\n }\n preview(): Observable<any> {\n const headers = new HttpHeaders({\n 'Content-Type': this.header.contentType,\n 'auth-user': this.header.authUser,\n });\n const body = {\n // Your request body content here\n };\n const options = {\n headers: headers,\n body: body,\n };\n const fileUrl =this.fileDataUrl;\n const encodedFileUrl = encodeURIComponent(fileUrl);\n const fullUrl = `?url=${encodedFileUrl}`;\n this.imgUrl= (this.apiUrl + `/api/cdn/preview${fullUrl}`);\n this.visible= true;\n console.log(\"img\",this.imgUrl)\n return this.http.get<any>(this.apiUrl + `/api/cdn/preview${fullUrl}`, options);\n }\n closeModal() {\n this.visible = false;\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\n <div class=\"input-wrapper\">\n <div [innerHTML]=\"question.questionNumber\" ></div>\n &nbsp;&nbsp; <label (click)=\"preview()\">{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <div class=\"modal1\" *ngIf=\"visible\">\n <div class=\"modal-content1\">\n <span class=\"close\" (click)=\"closeModal()\">&times;</span>\n <div class=\"imgContiner\">\n <img [src]=\"imgUrl\" alt=\"Image\">\n </div>\n </div>\n </div>\n</div>\n\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'lib-text-area-fields',\n templateUrl: './text-area-fields.component.html',\n styleUrls: ['./text-area-fields.component.scss'],\n})\nexport class TextAreaFieldsComponent {\n @Input() question: any = {};\n answer: string = '';\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n numberOfRows!: number;\n limitedCharacters!: boolean;\n characterCount!: number;\n validationFailed: boolean = false;\n validationMessage: string = '';\n enteredText: string = '';\n\n ngOnInit() {\n this.valueAssigned();\n }\n\n valueAssigned() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.numberOfRows = this.question.formElement.appearance.numberOfRows;\n this.limitedCharacters =\n this.question.formElement.validation.limitedCharacters;\n if (this.limitedCharacters) {\n this.characterCount = this.question.formElement.validation.count;\n }\n this.enteredText = this.question?.answer\n }\n validateInput(event: any) {\n this.question.answer = event.target.value;\n this.validateTextarea();\n }\n validateTextarea() {\n this.validationFailed = false;\n this.validationMessage = '';\n if (!this.enteredText && this.required) {\n this.validationFailed = true;\n this.validationMessage = 'This is a required question';\n this.question.validation = false;\n }\n else {\n this.question.validation = true;\n }\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <textarea\n class=\"form-control mb-2\"\n [rows]=\"numberOfRows\"\n (input)=\"validateInput($event)\"\n (blur)=\"validateTextarea()\"\n [(ngModel)]=\"enteredText\"\n [class.invalid]=\"validationFailed\"\n [maxlength]=\"characterCount\"\n ></textarea>\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Logic } from '../../models/logic.model';\n\n@Component({\n selector: 'lib-text-fields',\n templateUrl: './text-fields.component.html',\n styleUrls: ['./text-fields.component.scss'],\n})\nexport class TextFieldsComponent {\n @Input() question: any = {};\n answer: string = '';\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n placeholder: string = '';\n defaultValue: string = '';\n isBold!: boolean;\n isUnderline!: boolean;\n isItalics!: boolean;\n textAlign: string = '';\n font: string = '';\n fontSize: string = '';\n validationType: string = '';\n validation: string = '';\n regex: string = '';\n enteredText: string = '';\n validationFailed: boolean = false;\n validationMessage: string = '';\n\n ngOnInit() {\n this.valueAssigned();\n }\n\n valueAssigned() {\n this.count = this.question?.count;\n this.required = this.question?.required;\n this.hint = this.question?.hint;\n this.placeholder = this.question.formElement?.appearance?.placeholder || '';\n this.defaultValue = this.question.formElement.appearance?.defaultValue;\n this.isBold = this.question.formElement.appearance?.bold;\n this.isItalics = this.question.formElement.appearance?.italics;\n this.isUnderline = this.question.formElement.appearance?.underline;\n this.textAlign = this.question.formElement.appearance?.textAlign;\n this.font = this.question.formElement.appearance?.font;\n this.fontSize = this.question.formElement.appearance?.fontSize;\n this.validationType = this.question.formElement.validation?.validationType;\n if (this.validationType == 'CUSTOM_VALIDATION') {\n this.validation = this.question.formElement.validation?.validation;\n } else if (this.validationType == 'REGULAR_EXPRESSION') {\n this.regex = this.question.formElement.validation?.regex;\n }\n\n if (\n this.question.answer !== null &&\n this.question.answer !== undefined &&\n ((typeof this.question.answer === 'string' &&\n this.question.answer.trim() !== '') ||\n (Array.isArray(this.question.answer) &&\n this.question.answer.length > 0) ||\n (typeof this.question.answer === 'object' &&\n Object.keys(this.question.answer).length > 0))\n ) {\n this.enteredText = this.question.answer;\n }\n if(this.question.childLogics && this.question.answer){\n this.updateChildLogics(this.question)\n }\n }\n\n validatetextField() {\n this.validationFailed = false;\n this.validationMessage = '';\n if (this.required && !this.enteredText) {\n this.validationFailed = true;\n this.validationMessage = 'This is a required question';\n this.question.validation = false;\n } else {\n this.question.validation = true;\n }\n if (this.question.childLogics) {\n this.updateChildLogics(this.question);\n } \n }\n\n validateInput(event: any) {\n let value = event.target.value;\n if (this.validation == 'Numbers only') {\n event.target.value = value?.replace(/\\D/g, '');\n } else if (this.validation == 'Alphanumeric') {\n event.target.value = value?.replace(/[^a-zA-Z0-9]/g, '');\n } else if (this.validationType == 'REGULAR_EXPRESSION' && this.regex) {\n event.target.value = value?.replace(this.regex, '');\n }\n this.question.answer = event.target.value;\n this.validatetextField();\n }\n\n updateChildLogics(question: any) {\n if (question.childLogics && Array.isArray(question.childLogics)) {\n question.childLogics.forEach((childLogic: any) => {\n if(this.enteredText==''){\n childLogic.showLogic=false;\n this.clearAnswer(childLogic);\n }\n if (this.evaluateCondition(this.enteredText, childLogic.condition, childLogic.inputValue)) {\n childLogic.showLogic = true;\n }\n\n else{\n childLogic.showLogic = false;\n this.clearAnswer(childLogic);\n }\n });\n }\n }\n\n evaluateCondition(answer: any, condition: string, inputValue: any): boolean {\n const stringInputValue = inputValue;\n\n switch (condition) {\n case '!=':\n return answer != inputValue;\n case '=':\n return answer == inputValue;\n case 'LIKE':\n return answer.includes(inputValue);\n case 'NOT LIKE':\n return !answer.includes(inputValue);\n case 'BEGIN WITH':\n return answer.startsWith(inputValue);\n case 'END WITH':\n return answer.endsWith(inputValue);\n default:\n return false;\n }\n }\n\n clearAnswer(childLogic:Logic){\n childLogic.formElements.forEach((formElement:any)=>{\n if(formElement.entityType == 'QUESTION'){ \n formElement.element.answer = '';\n }\n })\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div> &nbsp;&nbsp;\n <label>{{ question.question }}</label>&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div class=\"svg-wrapper mb-2 hintIcon\" [attr.data-title]=\"hint\" *ngIf=\"hint\">\n <svg class=\"hintSvg\" viewBox=\"0 0 30 30\" xmlns=\"http://www.w3.org/2000/svg\">\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\"/>\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\"/>\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\"/>\n </svg>\n </div>\n </div>\n \n <input\n type=\"text\"\n class=\"form-control mb-2 height\"\n [placeholder]=\"placeholder\"\n [value]=\"defaultValue\"\n [(ngModel)]=\"enteredText\"\n (blur)=\"validatetextField()\"\n (input)=\"validateInput($event)\"\n [class.invalid]=\"validationFailed\"\n />\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\n <svg class=\"validationSvg\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\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\"/>\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\"/>\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\n </svg>\n {{validationMessage}}</div>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-toggle-switch-fields',\n templateUrl: './toggle-switch-fields.component.html',\n styleUrls: ['./toggle-switch-fields.component.scss'],\n})\nexport class ToggleSwitchFieldsComponent {\n @Input() question: any = {};\n @Input() acceptedLanguage: string ='';\n\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n labelOnValue: string = '';\n labelOffValue: string = '';\n labelOnColor: string = '';\n labelOffColor: string = '';\n toggleBackgroundColor: string = '';\n selectedValue : string ='';\n\n ngOnInit() {\n this.valueAssigned();\n }\n\n getDirectionClass(): string {\n return this.acceptedLanguage === 'ara' ? 'direction-rtl' : 'direction-ltr';\n }\n\n valueAssigned() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.labelOnValue = this.question.formElement.appearance.labelOnValue;\n this.labelOffValue = this.question.formElement.appearance.labelOffValue;\n this.labelOnColor = this.question.formElement.appearance.labelOnColor;\n this.labelOffColor = this.question.formElement.appearance.labelOffColor;\n this.toggleBackgroundColor = this.labelOnColor;\n if (!this.question.answer) {\n this.question.answer = this.labelOffValue;\n this.question.validation = true;\n }\n if (this.question.answer) {\n this.selectedValue = this.question.answer;\n this.question.validation = true;\n }\n }\n\n toggleSliderColor(event: any): void {\n let isChecked = event.target.checked;\n this.question.answer = isChecked ? this.labelOnValue : this.labelOffValue;\n this.question.validation = true;\n this.toggleBackgroundColor = isChecked\n ? this.question.formElement.appearance.labelOffColor\n : this.question.formElement.appearance.labelOnColor;\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-3 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <div class=\"mt-2\">\n <label class=\"switch\" [ngClass]=\"{'direction-rtl': acceptedLanguage === 'ara', 'direction-ltr': acceptedLanguage !== 'ara'}\">\n <input\n type=\"checkbox\"\n id=\"togBtn\"\n (change)=\"toggleSliderColor($event)\"\n [checked]=\"selectedValue == labelOnValue ? true : false\"\n />\n <div\n class=\"slider round\" [ngClass]=\"getDirectionClass()\"\n [ngStyle]=\"{ 'background-color': toggleBackgroundColor }\"\n >\n <span class=\"on action-btn-text\">{{ labelOffValue }}</span>\n <span class=\"off action-btn-text\">{{ labelOnValue }}</span>\n </div>\n </label>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'lib-url-fields',\n templateUrl: './url-fields.component.html',\n styleUrls: ['./url-fields.component.scss'],\n})\nexport class UrlFieldsComponent {\n @Input() question: any = {};\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n placeholder: string = '';\n showPreviewButton!: boolean;\n enteredUrl: string = '';\n validationFailed: boolean = false;\n validationMessage: string = '';\n\n constructor() { }\n\n ngOnInit() {\n this.valueAssigned();\n }\n\n handleClick() {\n let textFieldValue = (document.getElementById('textField') as HTMLInputElement).value.trim();\n\n if (!/^https?:\\/\\//i.test(textFieldValue)) {\n textFieldValue = 'http://' + textFieldValue;\n }\n\n window.open(textFieldValue, '_blank');\n }\n\n valueAssigned() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.placeholder = this.question.formElement.appearance.placeholder;\n this.showPreviewButton =\n this.question.formElement.appearance.showPreviewButton;\n this.enteredUrl = this.question?.answer; \n }\n validateUrl() {\n this.validationFailed = false;\n this.validationMessage = '';\n if (this.required && !this.enteredUrl) {\n this.validationFailed = true;\n this.validationMessage = 'This is a required question';\n this.question.validation = false;\n }\n else {\n this.question.validation = true;\n }\n }\n\n validateInput(event: any) {\n this.validateUrl();\n this.question.answer = event.target.value;\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <div class=\"input-group\">\n <input\n id=\"textField\"\n type=\"text\"\n class=\"form-control col-11.5 rounded height\"\n [placeholder]=\"placeholder\"\n [(ngModel)]=\"enteredUrl\"\n (blur)=\"validateUrl()\"\n (input)=\"validateInput($event)\"\n [class.invalid]=\"validationFailed\"\n />\n <div class=\"ps-2 pe-2\">\n <button\n *ngIf=\"showPreviewButton\"\n type=\"button\"\n class=\"btn col-.5 custom-button rounded d-flex justify-content-center align-items-center height\"\n (click)=\"handleClick()\"\n >\n <svg\n width=\"30\"\n height=\"30\"\n viewBox=\"0 0 30 30\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"#084FFF\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M9.99766 2.49219L6.24609 6.24375\"\n stroke=\"#084FFF\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M9.99766 9.99766L6.24609 6.24609\"\n stroke=\"#084FFF\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M17.7924 14.8125L14.3035 18.3015L12.2051 16.2106\"\n stroke=\"#084FFF\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </button>\n </div>\n </div>\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-section-fields',\n templateUrl: './section-fields.component.html',\n styleUrls: ['./section-fields.component.scss']\n})\nexport class SectionFieldsComponent {\n @Input() section:any={};\n}\n","<div class=\"mb-4 px-3\">\n <p class=\"sectionTitle\">{{ section.title }}</p>\n <p [innerHTML]=\"section.description\" class=\"description\"></p>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-forth-child',\n templateUrl: './forth-child.component.html',\n styleUrls: ['./forth-child.component.scss']\n})\nexport class ForthChildComponent {\n @Input() childLogics: any = [];\n @Input() acceptedLanguage: string ='';\n}\n","<div *ngFor=\"let childLogic of childLogics\">\n <div *ngIf=\"childLogic.showLogic\">\n <div *ngFor=\"let formElement of childLogic.formElements\">\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\n <lib-check-box-fields\n *ngIf=\"formElement.element.formElement.elementType === 'CHECK_BOX'\"\n [question]=\"formElement.element\"\n ></lib-check-box-fields>\n <lib-date-time-fields\n *ngIf=\"formElement.element.formElement.elementType === 'DATE_TIME'\"\n [question]=\"formElement.element\"\n ></lib-date-time-fields>\n <lib-drop-down-fields\n *ngIf=\"formElement.element.formElement.elementType === 'DROP_DOWN'\"\n [question]=\"formElement.element\"\n ></lib-drop-down-fields>\n <lib-file-picker-fields\n *ngIf=\"formElement.element.formElement.elementType === 'FILE_PICKER'\"\n [question]=\"formElement.element\"\n ></lib-file-picker-fields>\n <lib-location-fields\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\n [question]=\"formElement.element\"\n ></lib-location-fields>\n \n <lib-mail-fields\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\n [question]=\"formElement.element\"\n >\n </lib-mail-fields>\n <lib-mobile-fields\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\n [question]=\"formElement.element\"\n >\n </lib-mobile-fields>\n <lib-number-fields\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\n [question]=\"formElement.element\"\n >\n </lib-number-fields>\n <lib-password-fields\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\n [question]=\"formElement.element\"\n >\n </lib-password-fields>\n <lib-radio-button-fields\n *ngIf=\"formElement.element.formElement.elementType === 'RADIO_BUTTON'\"\n [question]=\"formElement.element\"\n ></lib-radio-button-fields>\n <lib-rich-text-editor-fields\n *ngIf=\"formElement.element.formElement.elementType === 'RICH_TEXT_EDITOR'\"\n [question]=\"formElement.element\"\n ></lib-rich-text-editor-fields>\n <lib-selection-matrix-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SELECTION_MATRIX'\"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-selection-matrix-fields>\n <lib-signature-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SIGNATURE'\"\n [question]=\"formElement.element\"\n ></lib-signature-fields>\n <lib-slider-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\n [question]=\"formElement.element\"\n ></lib-slider-fields>\n <lib-terms-and-condition-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TERMS_AND_CONDITION'\"\n [question]=\"formElement.element\"\n ></lib-terms-and-condition-fields>\n <lib-text-area-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_AREA'\"\n [question]=\"formElement.element\"\n ></lib-text-area-fields>\n <lib-text-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\n [question]=\"formElement.element\"\n ></lib-text-fields>\n <lib-toggle-switch-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-toggle-switch-fields>\n <lib-url-fields\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\n [question]=\"formElement.element\"\n ></lib-url-fields>\n </div>\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\n <lib-section-fields [section]=\"formElement.element\"></lib-section-fields>\n </div>\n <div *ngIf=\"formElement.entityType === 'SUBFORM'\">\n <!-- <lib-sub-form [subForm]=\"formElement.element\"></lib-sub-form> -->\n </div>\n </div>\n </div>\n </div>\n \n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-third-child',\n templateUrl: './third-child.component.html',\n styleUrls: ['./third-child.component.scss']\n})\nexport class ThirdChildComponent {\n @Input() childLogics: any = [];\n @Input() acceptedLanguage: string ='';\n\n\n}\n","<div *ngFor=\"let childLogic of childLogics\">\n <div *ngIf=\"childLogic.showLogic\">\n <div *ngFor=\"let formElement of childLogic.formElements\">\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\n <lib-check-box-fields\n *ngIf=\"formElement.element.formElement.elementType === 'CHECK_BOX'\"\n [question]=\"formElement.element\"\n ></lib-check-box-fields>\n <lib-date-time-fields\n *ngIf=\"formElement.element.formElement.elementType === 'DATE_TIME'\"\n [question]=\"formElement.element\"\n ></lib-date-time-fields>\n <lib-drop-down-fields\n *ngIf=\"formElement.element.formElement.elementType === 'DROP_DOWN'\"\n [question]=\"formElement.element\"\n ></lib-drop-down-fields>\n <lib-file-picker-fields\n *ngIf=\"formElement.element.formElement.elementType === 'FILE_PICKER'\"\n [question]=\"formElement.element\"\n ></lib-file-picker-fields>\n <lib-location-fields\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\n [question]=\"formElement.element\"\n ></lib-location-fields>\n \n <lib-mail-fields\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\n [question]=\"formElement.element\"\n >\n </lib-mail-fields>\n <lib-mobile-fields\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\n [question]=\"formElement.element\"\n >\n </lib-mobile-fields>\n <lib-number-fields\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\n [question]=\"formElement.element\"\n >\n </lib-number-fields>\n <lib-password-fields\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\n [question]=\"formElement.element\"\n >\n </lib-password-fields>\n <lib-radio-button-fields\n *ngIf=\"formElement.element.formElement.elementType === 'RADIO_BUTTON'\"\n [question]=\"formElement.element\"\n ></lib-radio-button-fields>\n <lib-rich-text-editor-fields\n *ngIf=\"formElement.element.formElement.elementType === 'RICH_TEXT_EDITOR'\"\n [question]=\"formElement.element\"\n ></lib-rich-text-editor-fields>\n <lib-selection-matrix-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SELECTION_MATRIX'\"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-selection-matrix-fields>\n <lib-signature-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SIGNATURE'\"\n [question]=\"formElement.element\"\n ></lib-signature-fields>\n <lib-slider-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\n [question]=\"formElement.element\"\n ></lib-slider-fields>\n <lib-terms-and-condition-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TERMS_AND_CONDITION'\"\n [question]=\"formElement.element\"\n ></lib-terms-and-condition-fields>\n <lib-text-area-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_AREA'\"\n [question]=\"formElement.element\"\n ></lib-text-area-fields>\n <lib-text-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\n [question]=\"formElement.element\"\n ></lib-text-fields>\n <lib-toggle-switch-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-toggle-switch-fields>\n <lib-url-fields\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\n [question]=\"formElement.element\"\n ></lib-url-fields>\n <lib-forth-child *ngIf=\"formElement.element.childLogics\"\n [childLogics]=\"formElement.element.childLogics\"\n [acceptedLanguage] = \"acceptedLanguage\"></lib-forth-child>\n </div>\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\n <lib-section-fields [section]=\"formElement.element\"></lib-section-fields>\n </div>\n <div *ngIf=\"formElement.entityType === 'SUBFORM'\">\n <!-- <lib-sub-form [subForm]=\"formElement.element\"></lib-sub-form> -->\n </div>\n </div>\n </div>\n </div>\n \n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-second-child',\n templateUrl: './second-child.component.html',\n styleUrls: ['./second-child.component.scss']\n})\nexport class SecondChildComponent {\n @Input() childLogics: any = [];\n @Input() acceptedLanguage: string ='';\n\n}\n","<div *ngFor=\"let childLogic of childLogics\">\n <div *ngIf=\"childLogic.showLogic\">\n <div *ngFor=\"let formElement of childLogic.formElements\">\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\n <lib-check-box-fields\n *ngIf=\"formElement.element.formElement.elementType === 'CHECK_BOX'\"\n [question]=\"formElement.element\"\n ></lib-check-box-fields>\n <lib-date-time-fields\n *ngIf=\"formElement.element.formElement.elementType === 'DATE_TIME'\"\n [question]=\"formElement.element\"\n ></lib-date-time-fields>\n <lib-drop-down-fields\n *ngIf=\"formElement.element.formElement.elementType === 'DROP_DOWN'\"\n [question]=\"formElement.element\"\n ></lib-drop-down-fields>\n <lib-file-picker-fields\n *ngIf=\"formElement.element.formElement.elementType === 'FILE_PICKER'\"\n [question]=\"formElement.element\"\n ></lib-file-picker-fields>\n <lib-location-fields\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\n [question]=\"formElement.element\"\n ></lib-location-fields>\n \n <lib-mail-fields\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\n [question]=\"formElement.element\"\n >\n </lib-mail-fields>\n <lib-mobile-fields\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\n [question]=\"formElement.element\"\n >\n </lib-mobile-fields>\n <lib-number-fields\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\n [question]=\"formElement.element\"\n >\n </lib-number-fields>\n <lib-password-fields\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\n [question]=\"formElement.element\"\n >\n </lib-password-fields>\n <lib-radio-button-fields\n *ngIf=\"formElement.element.formElement.elementType === 'RADIO_BUTTON'\"\n [question]=\"formElement.element\"\n ></lib-radio-button-fields>\n <lib-rich-text-editor-fields\n *ngIf=\"formElement.element.formElement.elementType === 'RICH_TEXT_EDITOR'\"\n [question]=\"formElement.element\"\n ></lib-rich-text-editor-fields>\n <lib-selection-matrix-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SELECTION_MATRIX'\"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-selection-matrix-fields>\n <lib-signature-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SIGNATURE'\"\n [question]=\"formElement.element\"\n ></lib-signature-fields>\n <lib-slider-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\n [question]=\"formElement.element\"\n ></lib-slider-fields>\n <lib-terms-and-condition-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TERMS_AND_CONDITION'\"\n [question]=\"formElement.element\"\n ></lib-terms-and-condition-fields>\n <lib-text-area-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_AREA'\"\n [question]=\"formElement.element\"\n ></lib-text-area-fields>\n <lib-text-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\n [question]=\"formElement.element\"\n ></lib-text-fields>\n <lib-toggle-switch-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-toggle-switch-fields>\n <lib-url-fields\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\n [question]=\"formElement.element\"\n ></lib-url-fields>\n <lib-third-child *ngIf=\"formElement.element.childLogics\"\n [childLogics]=\"formElement.element.childLogics\"\n [acceptedLanguage] = \"acceptedLanguage\"></lib-third-child>\n </div>\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\n <lib-section-fields [section]=\"formElement.element\"></lib-section-fields>\n </div>\n <div *ngIf=\"formElement.entityType === 'SUBFORM'\">\n <!-- <lib-sub-form [subForm]=\"formElement.element\"></lib-sub-form> -->\n </div>\n </div>\n </div>\n </div>\n \n\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-first-child',\n templateUrl: './first-child.component.html',\n styleUrls: ['./first-child.component.scss']\n})\nexport class FirstChildComponent {\n @Input() childLogics: any = [];\n @Input() acceptedLanguage: string ='';\n\n ngOnInit() {\n }\n}\n","<div *ngFor=\"let childLogic of childLogics\">\n <div *ngIf=\"childLogic.showLogic\">\n <div *ngFor=\"let formElement of childLogic.formElements\">\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\n <lib-check-box-fields\n *ngIf=\"formElement.element.formElement.elementType === 'CHECK_BOX'\"\n [question]=\"formElement.element\"\n ></lib-check-box-fields>\n <lib-date-time-fields\n *ngIf=\"formElement.element.formElement.elementType === 'DATE_TIME'\"\n [question]=\"formElement.element\"\n ></lib-date-time-fields>\n <lib-drop-down-fields\n *ngIf=\"formElement.element.formElement.elementType === 'DROP_DOWN'\"\n [question]=\"formElement.element\"\n ></lib-drop-down-fields>\n <lib-file-picker-fields\n *ngIf=\"formElement.element.formElement.elementType === 'FILE_PICKER'\"\n [question]=\"formElement.element\"\n ></lib-file-picker-fields>\n <lib-location-fields\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\n [question]=\"formElement.element\"\n ></lib-location-fields>\n \n <lib-mail-fields\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\n [question]=\"formElement.element\"\n >\n </lib-mail-fields>\n <lib-mobile-fields\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\n [question]=\"formElement.element\"\n >\n </lib-mobile-fields>\n <lib-number-fields\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\n [question]=\"formElement.element\"\n >\n </lib-number-fields>\n <lib-password-fields\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\n [question]=\"formElement.element\"\n >\n </lib-password-fields>\n <lib-radio-button-fields\n *ngIf=\"formElement.element.formElement.elementType === 'RADIO_BUTTON'\"\n [question]=\"formElement.element\"\n ></lib-radio-button-fields>\n <lib-rich-text-editor-fields\n *ngIf=\"formElement.element.formElement.elementType === 'RICH_TEXT_EDITOR'\"\n [question]=\"formElement.element\"\n ></lib-rich-text-editor-fields>\n <lib-selection-matrix-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SELECTION_MATRIX'\"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-selection-matrix-fields>\n <lib-signature-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SIGNATURE'\"\n [question]=\"formElement.element\"\n ></lib-signature-fields>\n <lib-slider-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\n [question]=\"formElement.element\"\n ></lib-slider-fields>\n <lib-terms-and-condition-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TERMS_AND_CONDITION'\"\n [question]=\"formElement.element\"\n ></lib-terms-and-condition-fields>\n <lib-text-area-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_AREA'\"\n [question]=\"formElement.element\"\n ></lib-text-area-fields>\n <lib-text-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\n [question]=\"formElement.element\"\n ></lib-text-fields>\n <lib-toggle-switch-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-toggle-switch-fields>\n <lib-url-fields\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\n [question]=\"formElement.element\"\n ></lib-url-fields>\n <lib-second-child *ngIf=\"formElement.element.childLogics\"\n [childLogics]=\"formElement.element.childLogics\"\n [acceptedLanguage] = \"acceptedLanguage\"></lib-second-child>\n </div>\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\n <lib-section-fields [section]=\"formElement.element\"></lib-section-fields>\n </div>\n <div *ngIf=\"formElement.entityType === 'SUBFORM'\">\n <!-- <lib-sub-form [subForm]=\"formElement.element\"></lib-sub-form> -->\n </div>\n </div>\n </div>\n \n </div>\n \n","import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\n\n\n@Component({\n selector: 'lib-question',\n templateUrl: './question.component.html',\n styleUrls: ['./question.component.scss']\n})\nexport class QuestionComponent {\n @Input() question: any = {};\n @Input() edit : boolean = false;\n @Input() acceptedLanguage: string ='';\n\n constructor(private cdr: ChangeDetectorRef) { }\n\n validations: any = [];\n @Input() currentPageIndex: number = 0;\n @Output() emitValidations = new EventEmitter<any>();\n handleValidation(validation: any) {\n this.validations.push(validation);\n this.emitValidations.emit(this.validations);\n this.cdr.detectChanges();\n }\n}\n","<div>\n <lib-check-box-fields\n *ngIf=\"question.formElement.elementType === 'CHECK_BOX'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\"></lib-check-box-fields>\n <lib-date-time-fields\n *ngIf=\"question.formElement.elementType === 'DATE_TIME'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\"></lib-date-time-fields>\n <lib-drop-down-fields\n *ngIf=\"question.formElement.elementType === 'DROP_DOWN'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\"></lib-drop-down-fields>\n <lib-file-picker-fields\n *ngIf=\"question.formElement.elementType === 'FILE_PICKER'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\"></lib-file-picker-fields>\n <lib-location-fields\n *ngIf=\"question.formElement.elementType === 'LOCATION'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\"></lib-location-fields>\n\n <lib-mail-fields\n *ngIf=\"question.formElement.elementType === 'EMAIL'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\">\n </lib-mail-fields>\n <lib-mobile-fields\n *ngIf=\"question.formElement.elementType === 'MOBILE'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\">\n </lib-mobile-fields>\n <lib-number-fields\n *ngIf=\"question.formElement.elementType === 'NUMBER'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\">\n </lib-number-fields>\n <lib-password-fields\n *ngIf=\"question.formElement.elementType === 'PASSWORD'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\">\n </lib-password-fields>\n <lib-radio-button-fields\n *ngIf=\"question.formElement.elementType === 'RADIO_BUTTON'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\"></lib-radio-button-fields>\n <lib-rich-text-editor-fields\n *ngIf=\"question.formElement.elementType === 'RICH_TEXT_EDITOR'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\"></lib-rich-text-editor-fields>\n <lib-selection-matrix-fields\n *ngIf=\"question.formElement.elementType === 'SELECTION_MATRIX'\"\n [question]=\"question\"\n [acceptedLanguage] = \"acceptedLanguage\"\n (validate)=\"handleValidation($event)\"></lib-selection-matrix-fields>\n <lib-signature-fields\n *ngIf=\"question.formElement.elementType === 'SIGNATURE'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\"></lib-signature-fields>\n <lib-slider-fields\n *ngIf=\"question.formElement.elementType === 'SLIDER'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\"></lib-slider-fields>\n <lib-terms-and-condition-fields\n *ngIf=\"question.formElement.elementType === 'TERMS_AND_CONDITION'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\"></lib-terms-and-condition-fields>\n <lib-text-area-fields\n *ngIf=\"question.formElement.elementType === 'TEXT_AREA'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\"></lib-text-area-fields>\n <lib-text-fields\n *ngIf=\"question.formElement.elementType === 'TEXT_BOX'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\"></lib-text-fields>\n <lib-toggle-switch-fields\n *ngIf=\"question.formElement.elementType === 'TOGGLE_SWITCH'\"\n [question]=\"question\"\n [acceptedLanguage] = \"acceptedLanguage\"\n (validate)=\"handleValidation($event)\"></lib-toggle-switch-fields>\n <lib-url-fields\n *ngIf=\"question.formElement.elementType === 'URL'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\"></lib-url-fields>\n <lib-first-child *ngIf=\"question.childLogics\"\n [childLogics]=\"question.childLogics\"\n [acceptedLanguage] = \"acceptedLanguage\">\n </lib-first-child>\n</div>\n","import { Component, Inject, Input } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'lib-submission-modal',\n templateUrl: './submission-modal.component.html',\n styleUrls: ['./submission-modal.component.scss']\n})\nexport class SubmissionModalComponent {\n acceptedLanguage: string ='';\n\n subForm:any;\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: any,\n private dialogRef: MatDialogRef<SubmissionModalComponent>\n ) { }\n\n ngOnInit(){\n this.subForm = this.data.subForm;\n this.acceptedLanguage = this.data.acceptedLanguage;\n }\n\n closeModal() {\n this.clearModal();\n this.dialogRef.close();\n }\n\n saveSubmission(){\n this.dialogRef.close(this.subForm);\n }\n\n clearModal() {\n if (this.subForm && this.subForm.formElements) {\n this.subForm.formElements.forEach((formElement: any) => {\n this.clearFormElement(formElement);\n });\n }\n }\n\n clearFormElement(formElement: any) {\n if (formElement.entityType === 'QUESTION') {\n formElement.element.answer = ''; \n\n // Additional properties to clear if needed\n if (formElement.element.formElement) {\n if (formElement.element.formElement.elementType === 'FILE_PICKER') {\n formElement.element.answer = null; // or [] depending on how you store files\n } else {\n formElement.element.answer = '';\n }\n }\n\n if (formElement.element.childLogics) {\n formElement.element.childLogics.forEach((childLogic: any) => {\n childLogic.showLogic=false;\n childLogic.formElements.forEach((formElement:any)=>{\n this.clearFormElement(formElement);\n\n })\n });\n }\n } \n }\n}\n","<div class=\"mb-5\">\n <div class=\"modalHeader mb-4\">\n <div class=\"title-div\">\n <p class=\"title\">{{subForm.title}}</p>\n </div>\n <div class=\"header-btn\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" (click)=\"closeModal()\">\n <path d=\"M8 8L16 16\" stroke=\"#1D252D\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M16 8L8 16\" stroke=\"#1D252D\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg> \n </div>\n </div>\n\n <div class=\"px-3\" *ngFor=\"let formElement of subForm.formElements\">\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\n <lib-check-box-fields\n *ngIf=\"formElement.element.formElement.elementType === 'CHECK_BOX'\"\n [question]=\"formElement.element\"\n ></lib-check-box-fields>\n <lib-date-time-fields\n *ngIf=\"formElement.element.formElement.elementType === 'DATE_TIME'\"\n [question]=\"formElement.element\"\n ></lib-date-time-fields>\n <lib-drop-down-fields\n *ngIf=\"formElement.element.formElement.elementType === 'DROP_DOWN'\"\n [question]=\"formElement.element\"\n ></lib-drop-down-fields>\n <lib-file-picker-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'FILE_PICKER'\n \"\n [question]=\"formElement.element\"\n ></lib-file-picker-fields>\n <lib-location-fields\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\n [question]=\"formElement.element\"\n ></lib-location-fields>\n\n <lib-mail-fields\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\n [question]=\"formElement.element\"\n >\n </lib-mail-fields>\n <lib-mobile-fields\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\n [question]=\"formElement.element\"\n >\n </lib-mobile-fields>\n <lib-number-fields\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\n [question]=\"formElement.element\"\n >\n </lib-number-fields>\n <lib-password-fields\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\n [question]=\"formElement.element\"\n >\n </lib-password-fields>\n <lib-radio-button-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'RADIO_BUTTON'\n \"\n [question]=\"formElement.element\"\n ></lib-radio-button-fields>\n <lib-rich-text-editor-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'RICH_TEXT_EDITOR'\n \"\n [question]=\"formElement.element\"\n ></lib-rich-text-editor-fields>\n <lib-selection-matrix-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'SELECTION_MATRIX'\n \"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-selection-matrix-fields>\n <lib-signature-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SIGNATURE'\"\n [question]=\"formElement.element\"\n ></lib-signature-fields>\n <lib-slider-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\n [question]=\"formElement.element\"\n ></lib-slider-fields>\n <lib-terms-and-condition-fields\n *ngIf=\"\n formElement.element.formElement.elementType ===\n 'TERMS_AND_CONDITION'\n \"\n [question]=\"formElement.element\"\n ></lib-terms-and-condition-fields>\n <lib-text-area-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_AREA'\"\n [question]=\"formElement.element\"\n ></lib-text-area-fields>\n <lib-text-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\n [question]=\"formElement.element\"\n ></lib-text-fields>\n <lib-toggle-switch-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\n \"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-toggle-switch-fields>\n <lib-url-fields\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\n [question]=\"formElement.element\"\n ></lib-url-fields>\n <lib-first-child\n *ngIf=\"formElement.element.childLogics\"\n [childLogics]=\"formElement.element.childLogics\"\n ></lib-first-child>\n </div>\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\n <lib-section-fields\n [section]=\"formElement.element\"\n ></lib-section-fields>\n </div>\n </div>\n\n <div class=\"okBtn me-4 ms-4\">\n <button\n class=\"submitBtn ms-md-3 me-md-2 rounded-pill\"\n type=\"button\"\n (click)=\"saveSubmission()\">\n Ok\n </button>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { SubmissionModalComponent } from '../submission-modal/submission-modal.component';\nimport { Attachment } from '../../models/attachment.model';\n\ninterface Answer {\n questionId: string;\n answer?: any;\n answerId?: string;\n deleteFiles?: string[];\n attachments?: Attachment[];\n files?: any;\n isChild?: boolean;\n}\n\ninterface Submission {\n submissionId: string;\n answers: Answer[];\n}\n\n@Component({\n selector: 'lib-multiple-subform',\n templateUrl: './multiple-subform.component.html',\n styleUrls: ['./multiple-subform.component.scss'],\n})\nexport class MultipleSubformComponent {\n @Input() subForm: any = {};\n @Output() subFormChange = new EventEmitter<any>();\n @Input() acceptedLanguage: string ='';\n\n submissions: Submission[] = [];\n deletedSubmissions: string[] = [];\n displayedColumns: string[] = [];\n\n constructor(public dialog: MatDialog) {}\n\n ngOnInit() {\n if (this.subForm?.submissions) {\n this.submissions = this.subForm.submissions;\n this.subForm.deletedSubmissions = [];\n }\n this.initializeDisplayedColumns();\n }\n\n initializeDisplayedColumns() {\n this.displayedColumns = this.subForm.formElements.map((fe: any) => fe.element.question);\n this.displayedColumns.push('actions');\n }\n\n getAnswerByQuestionId(submission: Submission, questionId: string) {\n return submission.answers.find(answer => answer.questionId === questionId);\n }\n\n subFormSubmission(subForm: any) {\n const processFormElements = (formElements: any[], isChild: boolean = false): Answer[] => {\n const answers: Answer[] = [];\n \n formElements.forEach((formElement: any) => {\n const answer: Answer = {\n questionId: formElement.element.id,\n answer: formElement.element?.answer || '',\n files: formElement.element.formElement.elementType == 'FILE_PICKER' && formElement.element.answer\n ? formElement.element.answer\n : undefined,\n isChild: isChild\n };\n \n if (\n formElement.element.formElement.elementType == 'FILE_PICKER' &&\n formElement.element.answer\n ) {\n const fileNames = formElement.element.answer.map(\n (file: any) => file?._file.name\n );\n answer.answer = fileNames;\n }\n answers.push(answer);\n \n if (formElement.element.childLogics) {\n formElement.element.childLogics.forEach((logic: any) => {\n if(logic.showLogic){\n answers.push(...processFormElements(logic.formElements, true));\n logic.showLogic=false;\n }\n });\n }\n\n formElement.element.answer = '';\n });\n return answers;\n };\n \n const answers = processFormElements(subForm.formElements);\n \n if (answers.length > 0) {\n const submission: Submission = {\n submissionId: '',\n answers: answers,\n };\n this.submissions.push(submission);\n this.submissions = [...this.submissions];\n this.updateSubFormWithSubmissions();\n }\n }\n \n\n editSubFormSubmission(index: number, submission: Submission) {\n const subForm = this.bindAnswers(this.subForm, submission);\n const dialogConfig = new MatDialogConfig();\n dialogConfig.position = { top: '5%' };\n dialogConfig.width = '100%';\n dialogConfig.data = {\n subForm: subForm,\n acceptedLanguage: this.acceptedLanguage\n };\n dialogConfig.hasBackdrop = true;\n dialogConfig.disableClose = true;\n dialogConfig.maxHeight = '80vh';\n const dialogRef = this.dialog.open(SubmissionModalComponent, dialogConfig);\n\n dialogRef.afterClosed().subscribe((result: any) => {\n if (result) {\n this.updateSubmission(result, index);\n }\n });\n }\n\n bindAnswers(subForm: any, submission: Submission): any {\n const bindElementAnswers = (formElements: any[], answers: Answer[]) => {\n formElements.forEach((formElement: any) => {\n const answer = answers.find(\n (a) => a.questionId === formElement.element.id\n );\n if (answer) {\n formElement.element.answer =\n formElement.element.formElement.elementType == 'FILE_PICKER'\n ? answer?.files\n : answer.answer;\n formElement.element.answerId = answer.answerId;\n formElement.element.attachments = answer.attachments;\n }\n if (formElement.element.childLogics) {\n formElement.element.childLogics.forEach((logic: any) => {\n bindElementAnswers(logic.formElements, answers);\n });\n }\n });\n };\n\n const updatedSubForm = { ...subForm };\n bindElementAnswers(updatedSubForm.formElements, submission.answers);\n return updatedSubForm;\n }\n\n deleteSubForm(index: number) {\n const submission = this.submissions[index];\n if (submission.submissionId) {\n this.deletedSubmissions.push(submission.submissionId);\n }\n this.submissions.splice(index, 1);\n this.submissions = [...this.submissions];\n this.updateSubFormWithSubmissions();\n }\n\n addNewSubmission() {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.position = { top: '5%' };\n dialogConfig.width = '100%';\n dialogConfig.data = {\n subForm: this.subForm,\n acceptedLanguage: this.acceptedLanguage\n };\n dialogConfig.hasBackdrop = true;\n dialogConfig.disableClose = true;\n dialogConfig.maxHeight = '80vh';\n const dialogRef = this.dialog.open(SubmissionModalComponent, dialogConfig);\n \n dialogRef.afterClosed().subscribe((result: any) => {\n if (result) {\n const hasData = result.formElements.some((formElement: any) => {\n return formElement.element.answer && formElement.element.answer.length > 0;\n });\n \n if (hasData) {\n this.subForm = result;\n this.subFormSubmission(result);\n }\n }\n });\n }\n \n\n updateSubmission(result: any, index: number) {\n const processFormElements = (formElements: any[], answers: Answer[]) => {\n formElements.forEach((formElement: any) => {\n let answer: Answer = {\n questionId: formElement.element.id,\n answerId: formElement.element?.answerId || '',\n attachments: formElement.element.attachments || [],\n answer: [],\n files: [],\n deleteFiles: [],\n };\n \n if (answer.attachments) {\n answer.answer = answer.attachments.map(\n (attachment: Attachment) => attachment.fileName\n );\n }\n \n if (formElement.element.formElement.elementType === 'FILE_PICKER') {\n if (formElement.element?.deleteFiles) {\n answer.answer = [];\n formElement.element.deleteFiles.forEach((deletedId: string) => {\n answer.deleteFiles?.push(deletedId);\n if (answer.attachments) {\n answer.attachments = answer.attachments.filter(\n (attachment: Attachment) => {\n const fileName = attachment.fileName;\n if (attachment.fileId !== deletedId) {\n if (!answer.answer.includes(fileName)) {\n answer.answer.push(fileName);\n return true;\n }\n }\n return false;\n }\n );\n }\n });\n }\n if (formElement.element.answer) {\n answer.files = formElement.element.answer;\n formElement.element.answer.forEach((file: any) => {\n const fileName = file._file?.name;\n let fileNamesArray = Array.isArray(answer.answer)\n ? answer.answer\n : [];\n if (!fileNamesArray.includes(fileName)) {\n fileNamesArray.push(fileName);\n }\n answer.answer = fileNamesArray;\n });\n }\n } else {\n answer = {\n questionId: formElement.element.id,\n answerId: formElement.element?.answerId || '',\n attachments: formElement.element.attachments,\n answer: formElement.element.answer,\n };\n }\n formElement.element.answer = '';\n answers.push(answer);\n \n if (formElement.element.childLogics) {\n formElement.element.childLogics.forEach((logic: any) => {\n if(logic.showLogic){\n processFormElements(logic.formElements, answers);\n }\n });\n }\n });\n };\n \n this.submissions[index].answers = [];\n processFormElements(result.formElements, this.submissions[index].answers);\n this.submissions = [...this.submissions];\n this.updateSubFormWithSubmissions();\n this.clearEmptyRows();\n } \n\n updateSubFormWithSubmissions() {\n this.subForm.submissions = this.submissions;\n this.subForm.deletedSubmissions = this.deletedSubmissions;\n this.subFormChange.emit(this.subForm);\n }\n\n clearEmptyRows() {\n const nonEmptySubmissions:Submission[] = [];\n const emptySubmissionIds:string[] = [];\n \n this.submissions.forEach(submission => {\n if (submission.answers.some(answer => answer.answer !== '')) {\n nonEmptySubmissions.push(submission);\n } else if (submission.submissionId) {\n emptySubmissionIds.push(submission.submissionId);\n }\n });\n \n this.submissions = nonEmptySubmissions;\n this.deletedSubmissions.push(...emptySubmissionIds);\n this.updateSubFormWithSubmissions();\n }\n \n}\n","<div class=\"example-container \" tabindex=\"0\">\n <div class=\"table-container\">\n <table mat-table [dataSource]=\"submissions\" class=\"mat-elevation-z8\">\n <ng-container *ngFor=\"let formElement of subForm.formElements\" [matColumnDef]=\"formElement.element.question\">\n <th mat-header-cell *matHeaderCellDef class=\"border border-1\">{{ formElement.element.question }}</th>\n <td mat-cell *matCellDef=\"let submission\" class=\"border border-1\" [ngClass]=\"{'hidden': getAnswerByQuestionId(submission, formElement.element.id)?.isChild}\">\n {{ getAnswerByQuestionId(submission, formElement.element.id)?.answer }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\" stickyEnd>\n <th mat-header-cell *matHeaderCellDef class=\"border border-1\"> Actions </th>\n <td mat-cell *matCellDef=\"let submission; let i = index\" class=\"text-center border border-1\">\n\n <div>\n <button class=\"btn\" mat-icon-button [matMenuTriggerFor]=\"menu\" aria-label=\"Example icon-button with a menu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"editSubFormSubmission(i, submission)\">\n <svg width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"0.5\" y=\"0.5\" width=\"28\" height=\"26.4737\" rx=\"5.5\" fill=\"white\" stroke=\"#D8D8D8\"/>\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\"/>\n <path d=\"M15.1704 10.3984L17.8415 13.0695\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </button>\n <button mat-menu-item (click)=\"deleteSubForm(i)\">\n <svg width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"0.5\" y=\"0.5\" width=\"27.6402\" height=\"26.1328\" rx=\"5.5\" fill=\"white\" stroke=\"#D8D8D8\"/>\n <path d=\"M8.60449 9.20637H20.0354\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\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\"/>\n <path d=\"M16.7696 6.67122H11.8706\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12.6871 12.3242V16.2239\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M15.9532 12.3242V16.2239\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </button>\n </mat-menu>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </div>\n <div class=\"footer\">\n <div class=\"addNewBtn\" (click)=\"addNewSubmission()\">\n <svg width=\"15\" height=\"14\" viewBox=\"0 0 15 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\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\"/>\n <path d=\"M5.3335 7.50347H9.66683\" stroke=\"#084FFF\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M7.50005 5.33594V9.66927\" stroke=\"#084FFF\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n <a class=\"ms-2 text-decoration-none\">Add New</a>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'lib-sub-form',\n templateUrl: './sub-form.component.html',\n styleUrls: ['./sub-form.component.scss'],\n})\nexport class SubFormComponent implements OnInit {\n @Input() subForm: any = {};\n @Input() edit: boolean = false;\n @Output() subFormChange = new EventEmitter<any>();\n @Input() acceptedLanguage: string ='';\n\n\n ngOnInit() {\n if (this.subForm.subFormStructure == 'single') {\n this.bindAnswersToFormElements();\n }\n }\n\n bindAnswersToFormElements() {\n const bindAnswers = (formElements: any[], submissions: any[]) => {\n formElements.forEach((formElement: { entityType: string; element: any }) => {\n if (formElement.entityType === 'QUESTION') {\n const submission = submissions.find((sub: { answers: any[] }) =>\n sub.answers.some((ans: { questionId: any }) => ans.questionId === formElement.element.id)\n );\n\n if (submission) {\n const answer = submission.answers.find((ans: { questionId: any }) => ans.questionId === formElement.element.id);\n if (answer) {\n formElement.element.answer = answer.answer;\n formElement.element.answerId = answer.answerId;\n formElement.element.validation = true;\n formElement.element.attachments = answer.attachments;\n this.subForm.submissionId = submission.submissionId;\n }\n }\n\n if (formElement.element.childLogics) {\n formElement.element.childLogics.forEach((childLogic: { formElements: any[] }) => {\n bindAnswers(childLogic.formElements, submissions);\n });\n }\n }\n });\n };\n\n if (this.subForm && this.subForm.formElements && this.subForm.submissions) {\n bindAnswers(this.subForm.formElements, this.subForm.submissions);\n }\n }\n\n\n updateSubFormWithSubmissions(event: any) {\n this.subForm = event;\n this.subFormChange.emit(this.subForm);\n }\n}\n","<div class=\"outer-container mb-4 px-3\">\n <div class=\"body container pt-3 pb-3 px-3\">\n <div class=\"tab-content pt-4 pb-3 px-3\">\n <p class=\"sectionTitle\">{{ subForm.title }}</p>\n <p [innerHTML]=\"subForm.description\" class=\"description mb-5\"></p>\n\n <div *ngIf=\"subForm.subFormStructure == 'multiple'\">\n <lib-multiple-subform\n [subForm]=\"subForm\"\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\n [acceptedLanguage]=\"acceptedLanguage\"\n ></lib-multiple-subform>\n </div>\n <div *ngIf=\"subForm.subFormStructure == 'single'\">\n <div *ngFor=\"let formElement of subForm.formElements\">\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\n <lib-check-box-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'CHECK_BOX'\n \"\n [question]=\"formElement.element\"\n ></lib-check-box-fields>\n <lib-date-time-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'DATE_TIME'\n \"\n [question]=\"formElement.element\"\n ></lib-date-time-fields>\n <lib-drop-down-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'DROP_DOWN'\n \"\n [question]=\"formElement.element\"\n ></lib-drop-down-fields>\n <lib-file-picker-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'FILE_PICKER'\n \"\n [question]=\"formElement.element\"\n ></lib-file-picker-fields>\n <lib-location-fields\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\n [question]=\"formElement.element\"\n ></lib-location-fields>\n\n <lib-mail-fields\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\n [question]=\"formElement.element\"\n >\n </lib-mail-fields>\n <lib-mobile-fields\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\n [question]=\"formElement.element\"\n >\n </lib-mobile-fields>\n <lib-number-fields\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\n [question]=\"formElement.element\"\n >\n </lib-number-fields>\n <lib-password-fields\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\n [question]=\"formElement.element\"\n >\n </lib-password-fields>\n <lib-radio-button-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'RADIO_BUTTON'\n \"\n [question]=\"formElement.element\"\n ></lib-radio-button-fields>\n <lib-rich-text-editor-fields\n *ngIf=\"\n formElement.element.formElement.elementType ===\n 'RICH_TEXT_EDITOR'\n \"\n [question]=\"formElement.element\"\n ></lib-rich-text-editor-fields>\n <lib-selection-matrix-fields\n *ngIf=\"\n formElement.element.formElement.elementType ===\n 'SELECTION_MATRIX'\n \"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-selection-matrix-fields>\n <lib-signature-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'SIGNATURE'\n \"\n [question]=\"formElement.element\"\n ></lib-signature-fields>\n <lib-slider-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\n [question]=\"formElement.element\"\n ></lib-slider-fields>\n <lib-terms-and-condition-fields\n *ngIf=\"\n formElement.element.formElement.elementType ===\n 'TERMS_AND_CONDITION'\n \"\n [question]=\"formElement.element\"\n ></lib-terms-and-condition-fields>\n <lib-text-area-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'TEXT_AREA'\n \"\n [question]=\"formElement.element\"\n ></lib-text-area-fields>\n <lib-text-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\n [question]=\"formElement.element\"\n ></lib-text-fields>\n <lib-toggle-switch-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\n \"\n [question]=\"formElement.element\"\n [acceptedLanguage]=\"acceptedLanguage\"\n ></lib-toggle-switch-fields>\n <lib-url-fields\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\n [question]=\"formElement.element\"\n ></lib-url-fields>\n <lib-first-child\n *ngIf=\"formElement.element.childLogics\"\n [childLogics]=\"formElement.element.childLogics\"\n ></lib-first-child>\n </div>\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\n <lib-section-fields\n [section]=\"formElement.element\"\n ></lib-section-fields>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\n\n@Component({\n selector: 'lib-form-elements',\n templateUrl: './form-elements.component.html',\n styleUrls: ['./form-elements.component.scss'],\n})\nexport class FormElementsComponent {\n @Input() grid: any = {};\n @Input() currentPageIndex: number = 0;\n @Input() edit : boolean = false;\n @Input() acceptedLanguage: string ='';\n @Output() subFormChange = new EventEmitter<any>();\n\n\n updateSubFormWithSubmissions(event:any){\n this.subFormChange.emit(event);\n }\n}\n","<div *ngIf=\"grid.entityType === 'QUESTION'\">\n <lib-question [question]=\"grid?.element\"\n [currentPageIndex]=\"currentPageIndex\"\n [edit]=\"edit\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-question>\n</div>\n<div *ngIf=\"grid.entityType === 'SECTION'\">\n <lib-section-fields [section]=\"grid.element\"></lib-section-fields>\n</div>\n<div *ngIf=\"grid.entityType === 'SUBFORM'\">\n <lib-sub-form [subForm]=\"grid.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\n ></lib-sub-form>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'lib-navigation-tabs',\n templateUrl: './navigation-tabs.component.html',\n styleUrls: ['./navigation-tabs.component.scss'],\n})\nexport class NavigationTabsComponent {\n @Input() pages: any[] = [];\n @Input() currentPageIndex: number = 0;\n @Output() pageChanged = new EventEmitter<number>();\n @Output() submitEmit: EventEmitter<any> = new EventEmitter<any>();\n @Input() edit : boolean = false;\n @Input() acceptedLanguage: string ='';\n @Output() subFormChange = new EventEmitter<any>();\n\n ngOnInit() {\n }\n\n updateSubFormWithSubmissions(event:any){\n this.subFormChange.emit(event);\n }\n\n\n setCurrentPage(index: number) {\n this.pageChanged.emit(index);\n }\n\n submitForm() {\n this.submitEmit.emit();\n }\n}\n","<div class=\"tab-inner-container\">\n <ul class=\"nav nav-tabs navTabs\" id=\"myTab\" role=\"tablist\">\n <li\n class=\"nav-item\"\n role=\"presentation\"\n *ngFor=\"let page of pages; let i = index\"\n [ngClass]=\"{'nav-item-ara': acceptedLanguage === 'ara', 'nav-item-default': acceptedLanguage !== 'ara'}\"\n >\n <button\n class=\"nav-link\"\n [title]=\"page.title\"\n data-bs-toggle=\"tooltip\" data-bs-placement=\"top\"\n data-bs-custom-class=\"custom-tooltip\"\n data-bs-title=\"This top tooltip is themed via CSS variables.\"\n [class.active]=\"i === currentPageIndex\"\n id=\"tab-{{ i }}\"\n [attr.data-bs-toggle]=\"'tab'\"\n [attr.data-bs-target]=\"'#content-' + i\"\n type=\"button\"\n role=\"tab\"\n [attr.aria-controls]=\"'content-' + i\"\n [attr.aria-selected]=\"i === 0\"\n (click)=\"setCurrentPage(i)\"\n >\n {{ page.title }}\n </button>\n </li>\n </ul>\n\n <div class=\"tab-content pt-5 pb-3 px-1\">\n <div\n *ngFor=\"let page of pages; let i = index\"\n class=\"tab-pane fade\"\n [class.show]=\"i === 0\"\n [class.active]=\"i === 0\"\n id=\"content-{{ i }}\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + i\"\n >\n <div *ngFor=\"let row of page.rows\">\n <div class=\"margin\">\n <div *ngFor=\"let grid of row.grid\">\n <lib-form-elements\n [grid]=\"grid\"\n [edit]=\"edit\"\n [acceptedLanguage] = \"acceptedLanguage\"\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\n ></lib-form-elements>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"currentPageIndex == pages.length - 1\"\n class=\"footerButton d-flex justify-content-end me-4 ms-4\"\n >\n <button\n class=\"btn btn-primary rounded-pill\"\n type=\"button\"\n (click)=\"submitForm()\"\n >\n Submit\n </button>\n </div>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'lib-next-prev-navigation',\n templateUrl: './next-prev-navigation.component.html',\n styleUrls: ['./next-prev-navigation.component.scss']\n})\nexport class NextPrevNavigationComponent {\n\n @Input() currentPageIndex: number = 0;\n @Input() pages: any[] = [];\n @Input() previousPage: any = {};\n @Input() nextPage: any = {};\n @Input() currentPage: any = {};\n @Output() navigateNext = new EventEmitter<void>();\n @Output() navigatePrevious = new EventEmitter<void>();\n @Output() submitEmit: EventEmitter<any> = new EventEmitter<any>();\n @Input() edit: boolean = false;\n @Input() acceptedLanguage: string ='';\n @Output() subFormChange = new EventEmitter<any>();\n\n\n updateSubFormWithSubmissions(event: any) {\n this.subFormChange.emit(event);\n }\n\n onNavigateNext() {\n this.navigateNext.emit();\n }\n\n onNavigatePrevious() {\n this.navigatePrevious.emit();\n }\n\n submitForm() {\n this.submitEmit.emit();\n }\n}\n","<div class=\"pageTitleDiv\">\n <p class=\"pageTitle\">{{ currentPage.title }}</p>\n</div>\n<div class=\"button-inner-container rounded\">\n <div class=\"tab-content pt-5 pb-3 row\">\n <div *ngFor=\"let row of pages[currentPageIndex].rows\" class=\"marginSize\">\n <div *ngFor=\"let grid of row.grid\">\n <lib-form-elements\n [grid]=\"grid\"\n [currentPageIndex]=\"currentPageIndex\"\n [edit]=\"edit\"\n [acceptedLanguage]=\"acceptedLanguage\"\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\n ></lib-form-elements>\n </div>\n </div>\n <div class=\"footerButton\">\n <div\n class=\"prevButtonDiv\"\n [ngClass]=\"{ 'prevDirection-rtl': acceptedLanguage === 'ara' }\">\n <button\n class=\"me-md-2 rounded-pill navButton\"\n type=\"button\"\n (click)=\"onNavigatePrevious()\"\n *ngIf=\"0 < currentPageIndex\"\n >\n <ng-container *ngIf=\"acceptedLanguage === 'ara'; else defaultSvg\">\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M19.4897 12.0117L4.49975 12.0117\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M13.486 6.02344L19.502 12.0004L13.486 17.9774\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </ng-container>\n <ng-template #defaultSvg>\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.51025 11.9883L19.5003 11.9883\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M10.514 17.9766L4.49805 11.9996L10.514 6.02256\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </ng-template>\n Previous | {{ previousPage.title }}\n </button>\n </div>\n <div\n class=\"nextButtonDiv\"\n [ngClass]=\"{ 'nextDirection-rtl': acceptedLanguage === 'ara' }\"\n >\n <button\n class=\"md-2 rounded-pill navButton\"\n type=\"button\"\n (click)=\"onNavigateNext()\"\n *ngIf=\"currentPageIndex < pages.length - 1\"\n >\n Next | {{ nextPage.title }}\n <ng-container *ngIf=\"acceptedLanguage === 'ara'; else defaultSvg\">\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.51025 11.9883L19.5003 11.9883\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M10.514 17.9766L4.49805 11.9996L10.514 6.02256\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </ng-container>\n <ng-template #defaultSvg>\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M19.4897 12.0117L4.49975 12.0117\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M13.486 6.02344L19.502 12.0004L13.486 17.9774\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </ng-template>\n </button>\n <button\n class=\"submitBtn ms-md-2 me-md-2 rounded-pill\"\n type=\"button\"\n *ngIf=\"currentPageIndex == pages.length - 1\"\n (click)=\"submitForm()\"\n >\n Submit\n </button>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-submission-container',\n templateUrl: './submission-container.component.html',\n styleUrls: ['./submission-container.component.scss']\n})\nexport class SubmissionContainerComponent {\n @Input() parentQuestionAnswers:any;\n\n isImageUrl(url: string): boolean {\n return url.match(/\\.(jpeg|jpg|gif|png)$/) != null;\n }\n}\n","<div class=\"subModule\">\n <div class=\"submission-container\">\n <div *ngFor=\"let qa of parentQuestionAnswers\" class=\"submission-item\">\n <div class=\"key\">{{ qa.question }}</div>\n <div class=\"value\">\n <ng-container *ngIf=\"qa.elementType === 'FILE_PICKER'; else text\">\n <div class=\"files\" *ngFor=\"let attachment of qa.attachments\">\n <ng-container *ngIf=\"isImageUrl(attachment.fileName); else fileLink\">\n <img [src]=\"attachment.fileUrl\" alt=\"{{ attachment.fileName }}\" class=\"image\">\n </ng-container>\n <ng-template #fileLink>\n <p>{{ attachment.fileName }}</p>\n <a class=\"fileName\" [href]=\"attachment.fileUrl\" target=\"_blank\">\n <i class=\"bi bi-file-earmark\"></i>\n </a>\n </ng-template>\n </div>\n </ng-container>\n <ng-template #text>\n <ng-container [ngSwitch]=\"qa.elementType\">\n <p *ngSwitchCase=\"'RICH_TEXT_EDITOR'\" [innerHTML]=\"qa.values\"></p>\n <p *ngSwitchCase=\"'DROP_DOWN'\">{{ qa.values.join(', ') }}</p>\n <p *ngSwitchCase=\"'SELECTION_MATRIX'\">{{ qa.values.join(', ') }}</p>\n <p *ngSwitchDefault>{{ qa.values }}</p>\n </ng-container>\n </ng-template>\n </div>\n </div>\n</div>\n </div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormService } from '../../services/form.service';\nimport * as mapper from '../../services/mapper.service';\nimport { PublicForm } from '../../models/publicForm.model';\nimport { ToastrService } from 'ngx-toastr';\nimport { Router } from '@angular/router';\nimport { DataService } from '../../services/data.service';\n\ninterface Answer {\n questionId: string;\n answer: any;\n answerId?: string;\n deleteFiles?: string[];\n}\n\ninterface Submission {\n submissionId: string;\n answers: Answer[];\n}\n\ninterface Form {\n formId: string;\n deletedSubmissions: any[];\n submissions: Submission[];\n}\n\ninterface QuestionAnswersWrapper {\n parentId:string;\n answers: Answer[];\n forms: Form[];\n}\n\n@Component({\n selector: 'lib-submit-form',\n templateUrl: './submit-form.component.html',\n styleUrls: ['./submit-form.component.scss'],\n})\nexport class SubmitFormComponent implements OnInit {\n question: PublicForm | null = null;\n @Input() moduleName: string = '';\n @Input() edit: boolean = false;\n @Input() submissionId: string = '';\n @Input() acceptedLanguage: string ='';\n @Output() submit: EventEmitter<string> = new EventEmitter<string>();\n\n name: string = '';\n saveAutomatically: boolean = false;\n saveInterval: number = 0;\n customizeFont: boolean = false;\n fontFamily: string = '';\n fontSize: number = 0;\n enableDataExport: boolean = false;\n fileFormats: string[] = [];\n enableQuestionNumbering: boolean = false;\n questionNumbering: string = '';\n enableGoogleRecaptcha: boolean = false;\n googleRecaptchaKey: string = '';\n googleRecaptchaSecret: string = '';\n navigation: string = '';\n markAllQuestionsAsRequired: boolean = false;\n pages: any = [];\n currentPageIndex: number = 0;\n previousPage: any = {};\n currentPage: any = {};\n nextPage: any = {};\n lastTab: boolean = false;\n questionAnswers: QuestionAnswersWrapper = { parentId:'',answers: [], forms: [] };\n files: { questionId: string; file: any }[] = [];\n parentQuestions:any;\n submission:any={};\n parentQuestionAnswers:any;\n parentSubmissionId:string='';\n submissionInProgress:boolean=false;\n\n constructor(\n private formService: FormService,\n private toastr: ToastrService,\n private router: Router,\n private dataService: DataService\n ) {\n const navigation = this.router.getCurrentNavigation();\n this.submission= navigation?.extras.state?.['submission'] \n this.parentSubmissionId=this.submission?.id;\n this.parentQuestionAnswers=this.submission?.questionAnswers\n this.parentQuestions=navigation?.extras.state?.['parentQuestions'];\n this.dataService.setParentQuestions(this.parentQuestions);\n }\n\n ngOnInit() {\n if (this.edit && this.submissionId) {\n this.getSubmittedFormData();\n } else {\n this.getFormData();\n }\n }\n\n getFormData() {\n this.formService.getQuestions(this.moduleName).subscribe((response) => {\n this.question = mapper.mapPublicFormToModel(response);\n this.assignQuestionProperties(this.question);\n });\n }\n\n getSubmittedFormData() {\n this.formService\n .getSubmittedForm(this.moduleName, this.submissionId)\n .subscribe((response) => {\n this.question = mapper.mapPublicFormToModel(response);\n this.assignQuestionProperties(this.question);\n });\n }\n\n assignQuestionProperties(question: PublicForm) {\n this.name = question.name;\n this.pages = question.pages;\n console.log(\"pages==>\",question)\n if(this.parentQuestions){\n this.parentQuestionAnswers=question?.questionAnswers;\n this.parentSubmissionId=question?.parentId;\n }\n this.currentPage = this.pages[0];\n this.nextPage = this.pages[1];\n this.saveAutomatically = question.formConfiguration.saveAutomatically;\n this.saveInterval = question.formConfiguration.saveInterval;\n this.customizeFont = question.formConfiguration.customizeFont;\n this.fontFamily = question.formConfiguration.fontFamily;\n this.fontSize = question.formConfiguration.fontSize;\n this.enableDataExport = question.formConfiguration.enableDataExport;\n this.fileFormats = question.formConfiguration.fileFormats;\n this.enableQuestionNumbering =\n question.formConfiguration.enableQuestionNumbering;\n this.questionNumbering = question.formConfiguration.questionNumbering;\n this.enableGoogleRecaptcha =\n question.formConfiguration.enableGoogleRecaptcha;\n this.googleRecaptchaKey = question.formConfiguration.googleRecaptchaKey;\n this.googleRecaptchaSecret =\n question.formConfiguration.googleRecaptchaSecret;\n this.navigation = question.formConfiguration.navigation;\n this.markAllQuestionsAsRequired =\n question.formConfiguration.markAllQuestionsAsRequired;\n }\n\n navigateToNextPage() {\n if (this.currentPageIndex < this.pages.length - 1) {\n if (this.markAllQuestionsAsRequired) {\n const currentPageData = this.pages[this.currentPageIndex];\n const validationResponse =\n this.validateRequiredQuestions(currentPageData);\n if (validationResponse.isValid) {\n this.previousPage = this.currentPage;\n this.currentPageIndex++;\n this.currentPage = this.pages[this.currentPageIndex];\n this.nextPage = this.pages[this.currentPageIndex + 1];\n } else {\n this.toastr.warning(validationResponse.message);\n }\n } else {\n this.previousPage = this.currentPage;\n this.currentPageIndex++;\n this.currentPage = this.pages[this.currentPageIndex];\n this.nextPage = this.pages[this.currentPageIndex + 1];\n }\n }\n }\n\n navigateToPreviousPage() {\n if (this.currentPageIndex > 0) {\n if (this.markAllQuestionsAsRequired) {\n const currentPageData = this.pages[this.currentPageIndex];\n const validationResponse =\n this.validateRequiredQuestions(currentPageData);\n if (validationResponse.isValid) {\n this.nextPage = this.currentPage;\n this.currentPageIndex--;\n this.currentPage = this.pages[this.currentPageIndex];\n this.previousPage = this.pages[this.currentPageIndex - 1];\n } else {\n this.toastr.warning(validationResponse.message);\n }\n } else {\n this.nextPage = this.currentPage;\n this.currentPageIndex--;\n this.currentPage = this.pages[this.currentPageIndex];\n this.previousPage = this.pages[this.currentPageIndex - 1];\n }\n }\n }\n\n setCurrentPage(index: number) {\n if (this.markAllQuestionsAsRequired) {\n const currentPageData = this.pages[this.currentPageIndex];\n const validationResponse =\n this.validateRequiredQuestions(currentPageData);\n if (validationResponse.isValid) {\n this.currentPageIndex = index;\n } else {\n this.toastr.warning(validationResponse.message);\n }\n } else {\n this.currentPageIndex = index;\n }\n }\n\n generateQuestionAnswers() {\n this.files = [];\n\n const extractQuestions = (\n formElements: any[],\n parentFormId: string | null = null,\n isInSubForm: boolean = false,\n subFormIndex: number = 0\n ): { answers: Answer[]; forms: Form[] } => {\n const questions: Answer[] = [];\n const forms: Form[] = [];\n\n formElements.forEach((element) => {\n if (element.entityType === 'QUESTION') {\n let baseQuestion: any;\n if (element.element.formElement.elementType === 'FILE_PICKER') {\n baseQuestion = {\n questionId: element.element.id,\n answer: '',\n };\n if (Array.isArray(element.element.answer)) {\n const questionId = isInSubForm\n ? `${parentFormId}_${subFormIndex}_${element.element.id}`\n : element.element.id;\n this.files.push({\n questionId: questionId,\n file: element.element.answer,\n });\n }\n } else {\n baseQuestion = {\n questionId: element.element.id,\n answer: element.element.answer,\n };\n }\n if (this.edit) {\n questions.push({\n ...baseQuestion,\n answerId: element.element.answerId || '',\n deleteFiles: element.element.deleteFiles || [],\n });\n } else {\n questions.push(baseQuestion);\n }\n\n if (element.element.childLogics) {\n for (let logic of element.element.childLogics) {\n if (logic.showLogic) {\n const result = extractQuestions(\n logic.formElements,\n parentFormId,\n isInSubForm,\n subFormIndex\n );\n questions.push(...result.answers);\n forms.push(...result.forms);\n }\n }\n }\n } else if (element.entityType === 'SUBFORM') {\n const subformId = element.element.id;\n const submissionId = element.element.submissionId;\n\n if (element.element.subFormStructure === 'single') {\n const subformQuestions = extractQuestions(\n element.element.formElements,\n subformId,\n true,\n forms.length\n );\n const subform: Form = {\n formId: subformId,\n deletedSubmissions: [],\n submissions: [\n {\n submissionId: submissionId,\n answers: subformQuestions.answers,\n },\n ],\n };\n forms.push(subform);\n } else if (element.element.subFormStructure === 'multiple') {\n const subformAnswers: Answer[] = [];\n const subformQuestions = extractQuestions(\n element.element.formElements,\n subformId,\n true,\n forms.length\n );\n const existingSubform = forms.find(\n (form) => form.formId === subformId\n );\n\n element.element?.submissions.forEach(\n (submission: any, index: number) => {\n submission.answers.forEach((answer: any) => {\n if (Array.isArray(answer.files)) {\n const questionId = `${subformId}_${index}_${answer.questionId}`;\n this.files.push({\n questionId: questionId,\n file: answer.files,\n });\n delete answer.files;\n }\n delete answer.attachments;\n });\n }\n );\n\n const subform: Form = {\n formId: subformId,\n deletedSubmissions: element.element.deletedSubmissions,\n submissions: element.element.submissions,\n };\n forms.push(subform);\n }\n }\n });\n return { answers: questions, forms: forms };\n };\n\n const processPages = (\n pages: any[]\n ): { answers: Answer[]; forms: Form[] } => {\n const questions: Answer[] = [];\n const forms: Form[] = [];\n\n pages.forEach((page) => {\n page.rows.forEach((row: any) => {\n const result = extractQuestions(row.grid);\n questions.push(...result.answers);\n forms.push(...result.forms);\n });\n });\n\n return { answers: questions, forms: forms };\n };\n\n const result = processPages(this.pages);\n\n this.questionAnswers = {\n parentId:'',\n answers: result.answers,\n forms: result.forms,\n };\n }\n\n submitForm() {\n if (this.submissionInProgress) {\n return;\n }\n \n this.submissionInProgress = true;\n \n let validationResponse = this.validateForm(this.pages);\n this.generateQuestionAnswers();\n if (validationResponse.isValid) {\n const formData = new FormData(); \n this.questionAnswers.parentId=this.parentSubmissionId;\n formData.append('json', JSON.stringify(this.questionAnswers));\n if (this.files.length > 0) {\n this.files.forEach((fileItem) => {\n fileItem.file.forEach((file: any) => {\n formData.append(fileItem.questionId, file._file);\n });\n });\n }\n const formServiceCall = this.edit && this.submissionId\n ? this.formService.updateForm(this.moduleName, this.submissionId, formData)\n : this.formService.submitForm(this.moduleName, formData);\n\n formServiceCall.subscribe({\n next:(response) => {\n this.toastr.success(this.edit ? 'Form updated successfully' : 'Form submitted successfully');\n this.submit.emit('success');\n this.submissionInProgress = false;\n },\n error:(error) => {\n this.toastr.error(this.edit ? 'Failed to update form' : 'Failed to submit form');\n this.submissionInProgress = false;\n }\n });\n } else {\n this.toastr.error(validationResponse.message);\n this.submissionInProgress = false;\n }\n }\n\n validateForm(jsonData: any): {\n isValid: boolean;\n message: string;\n pageIndex: number | 0;\n } {\n const validateQuestions = (\n formElements: any[]\n ): { isValid: boolean; message: string; pageIndex: number | 0 } => {\n for (let element of formElements) {\n if (element.entityType === 'QUESTION') {\n const required = element.element.required;\n const answer = element.element.answer;\n const validation = element.element.validation;\n if (element.element.formElement.elementType === 'FILE_PICKER') {\n const attachment = element.element.attachments;\n if (required) {\n if ((!answer || answer.length === 0) && attachment.length == 0) {\n return {\n isValid: false,\n message: `Form is invalid - Required file question ${element.element.questionNumber} has no files uploaded.`,\n pageIndex: 0,\n };\n }\n }\n } else {\n if (required) {\n if (!answer || Object.keys(answer).length === 0) {\n return {\n isValid: false,\n message: `Form is invalid - Question ${element.element.questionNumber} is required but no answer provided.`,\n pageIndex: 0,\n };\n } else if (!validation) {\n return {\n isValid: false,\n message: `Form is invalid - Question ${element.element.questionNumber} is required but validation is false.`,\n pageIndex: 0,\n };\n }\n } else if (!required && answer && Object.keys(answer).length > 0) {\n if (!validation) {\n return {\n isValid: false,\n message: `Form is invalid - Question ${element.element.questionNumber} is not required but answer provided with validation false.`,\n pageIndex: 0,\n };\n }\n }\n }\n if (element.element.childLogics) {\n for (let logic of element.element.childLogics) {\n if (logic.showLogic) {\n const result = validateQuestions(logic.formElements);\n if (!result.isValid) return result;\n }\n }\n }\n } else if (element.entityType === 'SUBFORM') {\n if (element.element.formElements) {\n const result = validateQuestions(element.element.formElements);\n if (!result.isValid) return result;\n }\n }\n }\n return { isValid: true, message: '', pageIndex: 0 };\n };\n\n for (let pageIndex = 0; pageIndex < jsonData.length; pageIndex++) {\n const page = jsonData[pageIndex];\n for (let row of page.rows) {\n const result = validateQuestions(row.grid);\n if (!result.isValid) {\n return {\n isValid: false,\n message: `Page ${pageIndex + 1}: ${result.message}`,\n pageIndex: pageIndex,\n };\n }\n }\n }\n return {\n isValid: true,\n message: 'Form is valid.',\n pageIndex: 0,\n };\n }\n\n validateRequiredQuestions(page: any): { isValid: boolean; message: string } {\n const validateQuestions = (\n formElements: any[]\n ): { isValid: boolean; message: string } => {\n for (let element of formElements) {\n if (element.entityType === 'QUESTION') {\n const required = element.element.required;\n const answer = element.element.answer;\n if (element.element.formElement.elementType === 'FILE_PICKER') {\n if (required) {\n if (!answer || answer.length === 0) {\n return {\n isValid: false,\n message: `Required file question ${element.element.questionNumber} is not answered.`,\n };\n }\n }\n } else {\n if (required) {\n if (!answer || Object.keys(answer).length === 0) {\n return {\n isValid: false,\n message: `Required question ${element.element.questionNumber} is not answered.`,\n };\n }\n }\n }\n if (element.element.childLogics) {\n for (let logic of element.element.childLogics) {\n if (logic.showLogic) {\n const result = validateQuestions(logic.formElements);\n if (!result.isValid) return result;\n }\n }\n }\n } else if (element.entityType === 'SUBFORM') {\n if (element.element.formElements) {\n const result = validateQuestions(element.element.formElements);\n if (!result.isValid) return result;\n }\n }\n }\n return { isValid: true, message: 'All required questions are answered.' };\n };\n\n for (let row of page.rows) {\n const result = validateQuestions(row.grid);\n if (!result.isValid) {\n return result;\n }\n }\n return { isValid: true, message: 'All required questions are answered.' };\n }\n\n updateSubFormWithSubmissions(event: any) {\n this.updateSubForm(this.pages, event);\n }\n\n updateSubForm = (pages: any[], updatedSubForm: any) => {\n pages.forEach((page) => {\n page.rows.forEach((row: any) => {\n row.grid.forEach((element: any) => {\n if (\n element.entityType === 'SUBFORM' &&\n element.element.id === updatedSubForm.formId\n ) {\n // Update the existing subform with the new data\n element.element = updatedSubForm;\n } else if (\n element.entityType === 'SUBFORM' &&\n element.element.id !== updatedSubForm.formId\n ) {\n // Handle multiple subforms logic here if needed\n } else if (\n element.entityType === 'QUESTION' &&\n element.element.childLogics\n ) {\n // Recursively update child logics\n element.element.childLogics.forEach((logic: any) => {\n if (logic.showLogic) {\n this.updateSubForm(logic.formElements, updatedSubForm);\n }\n });\n }\n });\n });\n });\n };\n}\n","<div class=\"outer-container\">\n \n \n <div class=\"head container\">\n <lib-header [name]=\"name\"></lib-header>\n </div>\n <div class=\"body container\">\n \n <lib-submission-container [parentQuestionAnswers]=\"parentQuestionAnswers\"\n *ngIf=\"parentQuestionAnswers\"></lib-submission-container>\n \n <lib-navigation-tabs\n *ngIf=\"navigation == 'TAB'\"\n [pages]=\"pages\"\n [currentPageIndex]=\"currentPageIndex\"\n (pageChanged)=\"setCurrentPage($event)\"\n (submitEmit)=\"submitForm()\"\n [edit]=\"edit\"\n [acceptedLanguage] = \"acceptedLanguage\"\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\n ></lib-navigation-tabs>\n <lib-next-prev-navigation\n *ngIf=\"navigation == 'NEXT_AND_PREVIOUS_BUTTON'\"\n [currentPageIndex]=\"currentPageIndex\"\n [pages]=\"pages\"\n [previousPage]=\"previousPage\"\n [currentPage]=\"currentPage\"\n [nextPage]=\"nextPage\"\n (navigateNext)=\"navigateToNextPage()\"\n (navigatePrevious)=\"navigateToPreviousPage()\"\n [acceptedLanguage] = \"acceptedLanguage\"\n (submitEmit)=\"submitForm()\"\n [edit]=\"edit\"\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\n ></lib-next-prev-navigation>\n </div>\n</div>\n","import { Component, EventEmitter, Inject, Input, OnInit, Output } from '@angular/core';\nimport { DataService } from '../services/data.service';\nimport { DOCUMENT } from '@angular/common';\nimport { environment } from '../environment/environment';\n\n\n@Component({\n selector: 'lib-formSubmission',\n templateUrl: './form-submission.component.html',\n styleUrls: ['./form-submission.component.scss'],\n})\n\nexport class FormSubmissionComponent implements OnInit {\n @Input() formData: any = {};\n @Input() edit: boolean = false;\n @Input() submissionId: string = '';\n @Output() submitForm: EventEmitter<string> = new EventEmitter<string>();\n header:any;\n constructor(private dataService: DataService, @Inject(DOCUMENT) private document: Document) { }\n ngOnInit() {\n this.dataService.setApiUrl(this.formData.apiurl);\n this.dataService.setHeader(this.formData.headers);\n\n this.dataService.header$.subscribe((data) => {\n this.header = data;\n this.setHtmlDirection(this.header.acceptedLanguage);\n });\n }\n\n setHtmlDirection(language: string) {\n const htmlTag = this.document.getElementsByTagName('html')[0] as HTMLHtmlElement;\n\n if (language === 'ara') {\n environment.htmlDirection = 'rtl';\n } else {\n environment.htmlDirection = 'ltr';\n }\n\n htmlTag.dir = environment.htmlDirection; \n }\n\n submit(event: any) {\n this.submitForm.emit(event);\n }\n}\n","<lib-submit-form\n [moduleName]=\"formData.moduleName\"\n [submissionId]=\"submissionId\"\n [edit]=\"edit\"\n [acceptedLanguage] = \"formData.headers.acceptedLanguage\"\n (submit)=\"submit($event)\"\n></lib-submit-form>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CheckBoxFieldsComponent } from './check-box-fields/check-box-fields.component';\nimport { DateTimeFieldsComponent } from './date-time-fields/date-time-fields.component';\nimport { DropDownFieldsComponent } from './drop-down-fields/drop-down-fields.component';\nimport { FilePickerFieldsComponent } from './file-picker-fields/file-picker-fields.component';\nimport { LocationFieldsComponent } from './location-fields/location-fields.component';\nimport { RadioButtonFieldsComponent } from './radio-button-fields/radio-button-fields.component';\nimport { RichTextEditorFieldsComponent } from './rich-text-editor-fields/rich-text-editor-fields.component';\nimport { SelectionMatrixFieldsComponent } from './selection-matrix-fields/selection-matrix-fields.component';\nimport { SignatureFieldsComponent } from './signature-fields/signature-fields.component';\nimport { SliderFieldsComponent } from './slider-fields/slider-fields.component';\nimport { TermsAndConditionFieldsComponent } from './terms-and-condition-fields/terms-and-condition-fields.component';\nimport { TextAreaFieldsComponent } from './text-area-fields/text-area-fields.component';\nimport { TextFieldsComponent } from './text-fields/text-fields.component';\nimport { ToggleSwitchFieldsComponent } from './toggle-switch-fields/toggle-switch-fields.component';\nimport { UrlFieldsComponent } from './url-fields/url-fields.component';\nimport { FormsModule } from '@angular/forms';\nimport { MailFieldsComponent } from './mail-fields/mail-fields.component';\nimport { MobileFieldsComponent } from './mobile-fields/mobile-fields.component';\nimport { NumberFieldsComponent } from './number-fields/number-fields.component';\nimport { PasswordFieldsComponent } from './password-fields/password-fields.component';\nimport {MatSliderModule} from \"@angular/material/slider\";\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\nimport { AngularEditorModule } from '@kolkov/angular-editor';\n\n\nimport { GoogleMapsModule } from '@angular/google-maps';\nimport { DropdownModule } from '@piserve-tech/drop-down';\nimport { FilePreviewModule } from '@piserve-tech/file-preview';\nimport { SectionFieldsComponent } from './section-fields/section-fields.component';\nimport { DocUploadModule } from '@piserve-tech/file-upload';\n\n\n\n\n\n\n@NgModule({\n declarations: [\n CheckBoxFieldsComponent,\n DateTimeFieldsComponent,\n DropDownFieldsComponent,\n FilePickerFieldsComponent,\n LocationFieldsComponent,\n RadioButtonFieldsComponent,\n RichTextEditorFieldsComponent,\n SelectionMatrixFieldsComponent,\n SignatureFieldsComponent,\n SliderFieldsComponent,\n TermsAndConditionFieldsComponent,\n TextAreaFieldsComponent,\n TextFieldsComponent,\n ToggleSwitchFieldsComponent,\n UrlFieldsComponent,\n MailFieldsComponent,\n MobileFieldsComponent,\n NumberFieldsComponent,\n PasswordFieldsComponent,\n SectionFieldsComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n MatSliderModule,\n BsDatepickerModule.forRoot(),\n DropdownModule,\n AngularEditorModule,\n DocUploadModule,\n GoogleMapsModule,\n FilePreviewModule\n ],\n exports: [\n CheckBoxFieldsComponent,\n DateTimeFieldsComponent,\n DropDownFieldsComponent,\n FilePickerFieldsComponent,\n LocationFieldsComponent,\n MailFieldsComponent,\n MobileFieldsComponent,\n NumberFieldsComponent,\n PasswordFieldsComponent,\n RadioButtonFieldsComponent,\n RichTextEditorFieldsComponent,\n SelectionMatrixFieldsComponent,\n SignatureFieldsComponent,\n SliderFieldsComponent,\n TermsAndConditionFieldsComponent,\n TextAreaFieldsComponent,\n TextFieldsComponent,\n ToggleSwitchFieldsComponent,\n UrlFieldsComponent,\n SectionFieldsComponent\n\n ]\n})\nexport class FormFieldsModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FirstChildComponent } from './first-child/first-child.component';\nimport { SecondChildComponent } from './second-child/second-child.component';\nimport { ThirdChildComponent } from './third-child/third-child.component';\nimport { ForthChildComponent } from './forth-child/forth-child.component';\nimport { FormFieldsModule } from '../form-fields/form-fields.module';\n\n\n\n@NgModule({\n declarations: [ FirstChildComponent, SecondChildComponent, ThirdChildComponent, ForthChildComponent],\n imports: [\n CommonModule,\n FormFieldsModule,\n ],\n exports:[FirstChildComponent, SecondChildComponent, ThirdChildComponent, ForthChildComponent]\n})\nexport class LogicModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { QuestionComponent } from './question/question.component';\nimport { LogicModule } from '../logic/logic.module';\nimport { FormFieldsModule } from '../form-fields/form-fields.module';\n\n\n\n@NgModule({\n declarations: [QuestionComponent],\n imports: [\n CommonModule,\n LogicModule,\n FormFieldsModule,\n ],\n exports:[QuestionComponent]\n})\nexport class QuestionModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SubFormComponent } from './sub-form/sub-form.component';\nimport { FormFieldsModule } from '../form-fields/form-fields.module';\nimport { LogicModule } from '../logic/logic.module';\nimport { MultipleSubformComponent } from './multiple-subform/multiple-subform.component';\nimport { SubmissionModalComponent } from './submission-modal/submission-modal.component';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatTableModule } from '@angular/material/table';\nimport {MatMenuModule} from '@angular/material/menu';\nimport {MatIconModule} from '@angular/material/icon';\n\n@NgModule({\n declarations: [SubFormComponent, MultipleSubformComponent, SubmissionModalComponent],\n imports: [\n CommonModule,\n FormFieldsModule,\n LogicModule,\n MatDialogModule,\n MatTableModule,\n MatMenuModule,\n MatIconModule\n ],\n exports:[SubFormComponent]\n})\nexport class SubFormModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormElementsComponent } from './form-elements/form-elements.component';\nimport { QuestionModule } from '../question/question.module';\nimport { FormFieldsModule } from '../form-fields/form-fields.module';\nimport { SubFormModule } from '../sub-form/sub-form.module';\n\n\n\n@NgModule({\n declarations: [ FormElementsComponent],\n imports: [\n CommonModule,\n QuestionModule,\n FormFieldsModule,\n SubFormModule\n ],\n exports: [\n FormElementsComponent\n ]\n})\nexport class ElementTypeModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SubmitFormComponent } from './submit-form/submit-form.component';\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\nimport { HeaderComponent } from './header/header.component';\nimport { NavigationTabsComponent } from './navigation-tabs/navigation-tabs.component';\nimport { NextPrevNavigationComponent } from './next-prev-navigation/next-prev-navigation.component';\nimport { ElementTypeModule } from '../element-type/element-type.module';\nimport { ToastrModule } from 'ngx-toastr';\nimport { SubmissionContainerComponent } from './submission-container/submission-container.component';\n\n\n\n@NgModule({\n declarations: [\n SubmitFormComponent,\n HeaderComponent,\n NavigationTabsComponent,\n NextPrevNavigationComponent,\n SubmissionContainerComponent\n ],\n imports: [\n CommonModule,\n BsDatepickerModule.forRoot(),\n ElementTypeModule,\n ToastrModule\n ],\n exports: [SubmitFormComponent, NextPrevNavigationComponent]\n})\nexport class FormSubmitModule { }\n","import { NgModule } from '@angular/core';\nimport { FormSubmissionComponent } from './form-submission.component';\n// import { DropdownModule } from '@piserve-tech/drop-down';\nimport { FilePreviewModule } from '@piserve-tech/file-preview';\nimport { FormsModule } from '@angular/forms';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { FormFieldsModule } from '../form-fields/form-fields.module';\nimport { FormSubmitModule } from '../form-submission/form-submission.module';\nimport { DropdownModule } from '@piserve-tech/drop-down';\nimport { ElementTypeModule } from '../element-type/element-type.module';\nimport { LogicModule } from '../logic/logic.module';\nimport { ToastrModule } from 'ngx-toastr';\nimport { DocUploadModule } from '@piserve-tech/file-upload';\n\n@NgModule({\n declarations: [FormSubmissionComponent],\n imports: [\n DropdownModule,\n FilePreviewModule,\n DocUploadModule,\n FormsModule,\n MatTabsModule,\n FormFieldsModule,\n FormSubmitModule,\n ElementTypeModule,\n LogicModule,\n ToastrModule.forRoot({\n positionClass: 'toast-bottom-left',\n }),\n ],\n exports: [FormSubmissionComponent],\n})\nexport class FormSubmissionModule {}\n","/*\n * Public API Surface of form-submission\n */\n\nexport * from './lib/form-submission.service';\nexport * from './lib/form-submission.component';\nexport * from './lib/form-submission.module';\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';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FormSubmissionService {\n\n constructor() { }\n}\n","export let environment = {\n production: false,\n googleRecaptchaSiteKey: '',\n htmlDirection: 'ltr'\n };\n ","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DataService {\n constructor() {}\n\n private dataSubject = new BehaviorSubject<string>('');\n public apiUrl$: Observable<string> = this.dataSubject.asObservable();\n private headerSubject = new BehaviorSubject<any>({});\n public header$: Observable<any> = this.headerSubject.asObservable();\n\n private parentQuestionsSubject = new BehaviorSubject<any>(null);\n public parentQuestions$: Observable<any> = this.parentQuestionsSubject.asObservable();\n\n setApiUrl(data: string): void {\n this.dataSubject.next(data);\n }\n\n setHeader(data: any) {\n this.headerSubject.next(data);\n }\n\n setParentQuestions(data: any): void {\n this.parentQuestionsSubject.next(data);\n }\n}\n","import { Appearance } from '../models/appearance.model';\nimport { ElementOptionAPI } from '../models/elementOptionAPI.model';\nimport { elementOptionAPIData } from '../models/elementOptionAPIData.model';\nimport { ElementOptionDB } from '../models/elementOptionDB.model';\nimport { ElementOptionDBCriteria } from '../models/elementOptionDBCriteria.model';\nimport { FormConfiguration } from '../models/formConfiguration.model';\nimport { FormElement } from '../models/formElement.model';\nimport { Grid } from '../models/grid.model';\nimport { Page } from '../models/page.model';\nimport { PublicForm } from '../models/publicForm.model';\nimport { Question } from '../models/question.model';\nimport { Row } from '../models/row.model';\nimport { Validation } from '../models/validation.model';\nimport { Option } from '../models/option.model';\nimport { Section } from '../models/section.model';\nimport { SubForm } from '../models/subForm.model';\nimport { FormElementType } from '../models/formElementType.model';\nimport { Logic } from '../models/logic.model';\nimport { Attachment } from '../models/attachment.model';\nimport { Submission } from '../models/submission.model';\nimport { Answer } from '../models/answer.model';\nimport { termsAndConditionType } from '../models/terms&condition.model';\n\nexport function mapPublicFormToModel(apiPublicForm: any): PublicForm {\n return {\n name: apiPublicForm.result.name,\n formConfiguration: mapFormConfigurationToModel(\n apiPublicForm.result.formConfiguration\n ),\n pages: apiPublicForm.result.pages.map((apiPage: any) =>\n mapPageToModel(apiPage)\n ),\n questionAnswers:apiPublicForm.result.questionAnswers,\n parentId:apiPublicForm.result.parentId\n };\n}\n\nfunction mapFormConfigurationToModel(\n apiFormConfiguration: any\n): FormConfiguration {\n return {\n saveAutomatically: apiFormConfiguration.saveAutomatically,\n saveInterval: apiFormConfiguration.saveInterval,\n customizeFont: apiFormConfiguration.customizeFont,\n fontFamily: apiFormConfiguration.fontFamily,\n fontSize: apiFormConfiguration.fontSize,\n enableDataExport: apiFormConfiguration.enableDataExport,\n fileFormats: apiFormConfiguration.fileFormats,\n enableQuestionNumbering: apiFormConfiguration.enableQuestionNumbering,\n questionNumbering: apiFormConfiguration.questionNumbering,\n enableGoogleRecaptcha: apiFormConfiguration.enableGoogleRecaptcha,\n googleRecaptchaKey: apiFormConfiguration.googleRecaptchaKey,\n googleRecaptchaSecret: apiFormConfiguration.googleRecaptchaSecret,\n navigation: apiFormConfiguration.navigation,\n markAllQuestionsAsRequired: apiFormConfiguration.markAllQuestionsAsRequired,\n };\n}\n\nfunction mapPageToModel(apiPage: any): Page {\n return {\n title: apiPage.title,\n rows: apiPage.rows.map((apiRow: any) => mapRowToModel(apiRow)),\n };\n}\n\nfunction mapRowToModel(apiRow: any): Row {\n return {\n grid: apiRow.grid.map((apiGrid: any) => mapGridToModel(apiGrid)),\n };\n}\n\nfunction mapGridToModel(apiGrid: any): Grid {\n let entity: Section | Question | SubForm | undefined;\n\n switch (apiGrid.entityType) {\n case 'QUESTION':\n entity = mapQuestionToModel(apiGrid.element);\n break;\n case 'SECTION':\n entity = mapSectionToModel(apiGrid.element);\n break;\n case 'SUBFORM':\n entity = mapSubFormToModel(apiGrid.element);\n break;\n default:\n throw new Error(`Unknown entity type: ${apiGrid.entityType}`);\n }\n\n return {\n entityType: apiGrid.entityType,\n element: entity,\n };\n}\n\nexport function mapSectionToModel(apiSection: any): Section {\n return {\n id: apiSection.id,\n title: apiSection.title,\n description: apiSection.description,\n };\n}\n\nexport function mapQuestionToModel(apiQuestion: any): Question {\n return {\n count: apiQuestion.count,\n id: apiQuestion.id,\n questionNumber: apiQuestion.questionNumber,\n required: apiQuestion.required,\n hint: apiQuestion.hint,\n question: apiQuestion.question,\n answer: apiQuestion?.answer,\n validation: true,\n formElement: mapFormElementToModel(apiQuestion.formElement),\n childLogics: apiQuestion?.childLogics?.map((logic: any) =>\n mapLogicToModel(logic)\n ),\n answerId: apiQuestion?.answerId,\n attachments: apiQuestion?.attachments?.map((attachment: any) => mapAttachmentToModel(attachment)) || [],\n deleteFiles: [],\n };\n}\n\nfunction mapAttachmentToModel(apiAttachment: any): Attachment {\n return {\n fileId: apiAttachment.fileId,\n fileName: apiAttachment.fileName,\n fileUrl: apiAttachment.fileUrl,\n };\n}\n\nfunction mapFormElementToModel(apiFormElement: any): FormElement {\n return {\n elementType: apiFormElement.elementType,\n appearance: mapAppearanceToModel(apiFormElement.appearance),\n validation: mapValidationToModel(apiFormElement.validation),\n option: mapOptionToModel(apiFormElement?.option),\n selectionMatrixLabel: apiFormElement.selectionMatrixLabel,\n selectionMatrixColumn: apiFormElement.selectionMatrixColumn,\n termsAndConditionType: maptermsAndCondition(apiFormElement)\n };\n}\nfunction maptermsAndCondition(Element: any): termsAndConditionType {\n console.log(\"Element\",Element)\n if(Element.termsAndCondition != undefined){\n let data = Element.termsAndCondition\n return {\n termsAndConditionType: data.termsAndConditionType,\n fileUrl: data.fileUrl,\n fileName: data.fileName,\n };\n }\n else{\n return {\n termsAndConditionType: '',\n fileUrl: '',\n fileName: '',\n }\n }\n\n}\n\nfunction mapLogicToModel(apiLogic: any): Logic {\n return {\n id: apiLogic.id,\n inputValue: apiLogic.inputValue,\n condition: apiLogic.condition,\n showLogic: false,\n formElements: apiLogic?.formElements?.map((element: any) =>\n mapFormElementTypeToModel(element)\n ),\n };\n}\n\nexport function mapSubFormToModel(apiSubForm: any): SubForm {\n return {\n id: apiSubForm.id,\n count: apiSubForm.count,\n title: apiSubForm.title,\n description: apiSubForm.description,\n subFormStructure: apiSubForm.subFormStructure,\n formElements: apiSubForm.formElements.map((element: any) => mapFormElementTypeToModel(element)),\n submissions: apiSubForm?.submissions?.map((submission: any) => mapSubmissionToModel(submission)),\n };\n}\n\nfunction mapSubmissionToModel(apiSubmission: any): Submission {\n return {\n submissionId: apiSubmission?.submissionId,\n answers: apiSubmission?.answers?.map((answer: any) => mapAnswerToModel(answer)),\n };\n}\n\nfunction mapAnswerToModel(apiAnswer: any): Answer {\n return {\n questionId: apiAnswer.questionId,\n answer: apiAnswer?.answer,\n answerId: apiAnswer?.answerId,\n attachments: apiAnswer?.attachments?.map((attachment: any) => mapAttachmentToModel(attachment)),\n };\n}\n\nexport function mapFormElementTypeToModel(\n apiFormElementType: any\n): FormElementType<any> {\n return {\n entityType: apiFormElementType?.entityType,\n element: apiFormElementType?.element,\n };\n}\n\nfunction mapAppearanceToModel(apiAppearance: any): Appearance {\n return {\n placeholder: apiAppearance?.placeholder,\n fontSize: apiAppearance?.fontSize,\n textAlign: apiAppearance?.textAlign,\n font: apiAppearance?.font,\n underline: apiAppearance?.underline,\n bold: apiAppearance?.bold,\n italics: apiAppearance?.italics,\n defaultValue: apiAppearance?.defaultValue,\n numberOfRows: apiAppearance?.numberOfRows,\n singleSelection: apiAppearance?.singleSelection,\n displayCountryCode: apiAppearance?.displayCountryCode,\n displayFlag: apiAppearance?.displayFlag,\n displayCode: apiAppearance?.displayCode,\n showCountryName: apiAppearance?.showCountryName,\n beautifyNumbers: apiAppearance?.beautifyNumbers,\n upAndDownButton: apiAppearance?.upAndDownButton,\n allowNegativeValues: apiAppearance?.allowNegativeValues,\n showPreviewButton: apiAppearance?.showPreviewButton,\n confirmPassword: apiAppearance?.confirmPassword,\n viewButton: apiAppearance?.viewButton,\n displayStrong: apiAppearance?.displayStrong,\n dateType: apiAppearance?.dateType,\n format: apiAppearance?.format,\n setCurrentPosition: apiAppearance?.setCurrentPosition,\n defaultZoomLevel: apiAppearance?.defaultZoomLevel,\n allowFullScreen: apiAppearance?.allowFullScreen,\n latitude: apiAppearance?.latitude,\n longitude: apiAppearance?.longitude,\n showAcceptButton: apiAppearance?.showAcceptButton,\n labelOnValue: apiAppearance?.labelOnValue,\n labelOffValue: apiAppearance?.labelOffValue,\n labelOnColor: apiAppearance?.labelOnColor,\n labelOffColor: apiAppearance?.labelOffColor,\n minValue: apiAppearance?.minValue,\n maxValue: apiAppearance?.maxValue,\n stepValue: apiAppearance?.stepValue,\n changeSliderColor: apiAppearance?.changeSliderColor,\n sliderColor: apiAppearance?.sliderColor,\n canvasOption: apiAppearance?.canvasOption,\n selectionType: apiAppearance?.selectionType,\n dragAndDrop: apiAppearance?.dragAndDrop,\n previewUploadedFiles: apiAppearance?.previewUploadedFiles,\n multiFileUploads: apiAppearance?.multiFileUploads,\n selectionColorRequired: apiAppearance?.selectionColorRequired,\n selectionColor: apiAppearance?.selectionColor,\n color: apiAppearance?.color,\n avatarPicker:apiAppearance?.avatarPicker\n };\n}\n\nfunction mapValidationToModel(apiValidation: any): Validation {\n return {\n regexValidation: apiValidation?.regexValidation,\n regex: apiValidation?.regex,\n validationMessage: apiValidation?.validationMessage,\n limitedCharacters: apiValidation?.limitedCharacters,\n count: apiValidation?.count,\n minimumSelection: apiValidation?.minimumSelection,\n maximumSelection: apiValidation?.maximumSelection,\n countryWiseValidation: apiValidation?.countryWiseValidation,\n restrictCountry: apiValidation?.restrictCountry,\n allowedCountries: apiValidation?.allowedCountries,\n blockedCountries: apiValidation?.blockedCountries,\n regularExpression: apiValidation?.regularExpression,\n expectedDomains: apiValidation?.expectedDomains,\n min: apiValidation?.min,\n max: apiValidation?.max,\n minLength: apiValidation?.minLength,\n maxLength: apiValidation?.maxLength,\n requireLowercaseLetters: apiValidation?.requireLowercaseLetters,\n requireUppercaseLetters: apiValidation?.requireUppercaseLetters,\n requireNumbers: apiValidation?.requireNumbers,\n requireSpecialCharacters: apiValidation?.requireSpecialCharacters,\n allowedSpecialCharacters: apiValidation?.allowedSpecialCharacters,\n minDateOption: apiValidation?.minDateOption,\n minDate: apiValidation?.minDate,\n maxDateOption: apiValidation?.maxDateOption,\n maxDate: apiValidation?.maxDate,\n regionBoundary: apiValidation?.regionBoundary,\n region: apiValidation?.region,\n preventFromProceedingWithoutAgree:\n apiValidation?.preventFromProceedingWithoutAgree,\n buttonColour: apiValidation?.buttonColour,\n maxFileSize: apiValidation?.maxFileSize,\n minFileSize: apiValidation?.minFileSize,\n minSelection: apiValidation?.minSelection,\n maxSelection: apiValidation?.maxSelection,\n fileTypes: apiValidation?.fileTypes,\n fileSize: apiValidation?.fileSize,\n fileSizeUnit: apiValidation?.fileSizeUnit,\n totalFileSize: apiValidation?.totalFileSize,\n minSelectionRequired: apiValidation?.minSelectionRequired,\n minSelectionValue: apiValidation?.minSelectionValue,\n validationType: apiValidation?.validationType,\n validation: apiValidation?.validation,\n };\n}\n\nfunction mapElementOptionDBToModel(apiElementOptionDB: any): ElementOptionDB {\n return {\n tableName: apiElementOptionDB.tableName,\n valueField: apiElementOptionDB.valueField,\n labelField: apiElementOptionDB.labelField,\n criteria: apiElementOptionDB?.criteria.map((apiCriteria: any) =>\n mapElementOptionDBCriteriaToModel(apiCriteria)\n ),\n };\n}\n\nfunction mapElementOptionDBCriteriaToModel(\n apiElementOptionDBCriteria: any\n): ElementOptionDBCriteria {\n return {\n field: apiElementOptionDBCriteria?.field,\n condition: apiElementOptionDBCriteria?.condition,\n valueSource: apiElementOptionDBCriteria?.valueSource,\n inputValue: apiElementOptionDBCriteria?.inputValue,\n logicalOperator: apiElementOptionDBCriteria?.logicalOperator,\n };\n}\n\nfunction mapElementOptionAPIToModel(\n apiElementOptionAPI: any\n): ElementOptionAPI {\n return {\n external: apiElementOptionAPI?.external,\n url: apiElementOptionAPI?.url,\n valueField: apiElementOptionAPI?.valueField,\n labelField: apiElementOptionAPI?.labelField,\n pathToValue: apiElementOptionAPI?.pathToValue,\n headers: apiElementOptionAPI?.headers?.map(mapElementOptionAPIDataToModel),\n params: apiElementOptionAPI?.params?.map(mapElementOptionAPIDataToModel),\n pathVariables: apiElementOptionAPI?.pathVariables?.map(\n mapElementOptionAPIDataToModel\n ),\n };\n}\n\nfunction mapElementOptionAPIDataToModel(\n apiElementOptionAPIData: any\n): elementOptionAPIData {\n return {\n keyName: apiElementOptionAPIData?.keyName,\n valueSource: apiElementOptionAPIData?.valueSource,\n inputValue: apiElementOptionAPIData?.inputValue,\n };\n}\n\nfunction mapOptionToModel(apiOption: any): Option {\n return {\n optionType: apiOption?.optionType,\n lookupTable: apiOption?.lookupTable,\n customOptions: apiOption?.customOptions?.map((option: { value: any }) => ({\n value: option.value,\n })),\n database: apiOption?.database\n ? mapElementOptionDBToModel(apiOption?.database)\n : undefined,\n api: apiOption?.api ? mapElementOptionAPIToModel(apiOption.api) : undefined,\n };\n}\n\n\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { DataService } from './data.service';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormService {\n private apiUrl: string = '';\n header: any = {};\n parentQuestions: any;\n\n constructor(private http: HttpClient, private dataService: DataService) {\n this.dataService.apiUrl$.subscribe((data) => {\n this.apiUrl = data;\n });\n\n this.dataService.header$.subscribe((data) => {\n this.header = data;\n });\n\n this.dataService.parentQuestions$.subscribe((questions) => {\n if (questions) {\n this.parentQuestions = questions;\n }\n });\n }\n\n getQuestions(moduleName: string) {\n const headers = new HttpHeaders({\n 'Accept-Language': this.header.acceptedLanguage,\n });\n return this.http.get(`${this.apiUrl}/api/public/forms/${moduleName}`, {\n headers\n });\n }\n\n fetchDataFromDatabase(database: any) {\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\n return this.http.post<any>(`${this.apiUrl}/api/load-from-db`, database, {\n headers,\n });\n }\n\n fetchDataFromLookup(tableName: string) {\n return this.http.get<any>(`${this.apiUrl}/api/public/lookup/${tableName}`);\n }\n\n fetchDataFromExternalAPI(url: string): Observable<any> {\n return this.http.get<any>(url);\n }\n\n submitForm(moduleName: string, formData: FormData): Observable<any> {\n const headers = new HttpHeaders({\n 'Auth-user': this.header.authUser,\n });\n const url = `${this.apiUrl}/api/public/forms/${moduleName}/submissions`;\n return this.http.post(url, formData, {\n headers\n });\n }\n\n getSubmittedForm(moduleName: string, submissionId: string) {\n const questions = this.parentQuestions ? this.parentQuestions.map((q: any) => `parentQuestions=${encodeURIComponent(q)}`).join('&') : '';\n return this.http.get<any>(`${this.apiUrl}/api/forms/${moduleName}/submissions/${submissionId}?${questions}`);\n }\n\n updateForm(moduleName: string, submissionId: string, formData: FormData): Observable<any> {\n const headers = new HttpHeaders({\n 'Auth-user': this.header.authUser,\n });\n const url = `${this.apiUrl}/api/public/forms/${moduleName}/submissions/${submissionId}`;\n return this.http.put(url, formData, {\n headers\n });\n }\n previewFile(url: any): Observable<any> {\n const headers = new HttpHeaders({\n 'Content-Type': this.header.contentType,\n 'auth-user': this.header.authUser,\n });\n const body = {\n // Your request body content here\n };\n const options = {\n headers: headers,\n body: body,\n };\n const fileUrl = url;\n const encodedFileUrl = encodeURIComponent(fileUrl);\n const fullUrl = `?url=${encodedFileUrl}`;\n return this.http.get<any>(this.apiUrl + `/api/cdn/preview${fullUrl}`, options);\n }\n\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss']\n})\nexport class HeaderComponent {\n @Input() name: string = '';\n}\n","<div class=\"head container\">\n <div class=\"registration-header\">\n <h2>{{ name }}</h2>\n </div>\n <div class=\"line\"></div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormService } from '../../services/form.service';\n\n@Component({\n selector: 'lib-check-box-fields',\n templateUrl: './check-box-fields.component.html',\n styleUrls: ['./check-box-fields.component.scss'],\n})\nexport class CheckBoxFieldsComponent {\n @Input() question: any = {};\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n selectionType: string = '';\n minimumSelection?: number;\n maximumSelection?: number;\n optionType: string = '';\n lookupTable: any = {};\n customOptions: any[] = [];\n database: any = {};\n api: any = {};\n apiOptions: any[] = []; \n selectedOptions: any[] = [];\n validationFailed: boolean = false;\n validationMessage: string = '';\n\n constructor(private formService: FormService) { }\n\n ngOnInit() {\n this.valueAssigned();\n }\n\n valueAssigned() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.selectionType = this.question.formElement.appearance.selectionType;\n this.minimumSelection =\n this.question.formElement.validation.minimumSelection;\n this.maximumSelection =\n this.question.formElement.validation.maximumSelection;\n this.optionType = this.question.formElement.option.optionType;\n switch (this.optionType) {\n case 'OPTION':\n this.customOptions = this.question.formElement.option.customOptions;\n if (this.question.answer) {\n this.initializeCustomOption();\n }\n break;\n case 'LOOKUP':\n this.lookupTable = this.question.formElement.option.lookupTable;\n this.fetchDataFromLookup();\n break;\n case 'DATABASE':\n this.database = this.question.formElement.option.database;\n this.fetchDataFromDatabase();\n break;\n case 'API':\n this.api = this.question.formElement.option.api;\n this.fetchDataFromAPI();\n break;\n default:\n console.warn('Unknown option type:', this.optionType);\n }\n\n // If selectionType is 'SINGLE', set minimumSelection and maximumSelection to 1\n if (this.selectionType === 'SINGLE') {\n this.minimumSelection = 1;\n this.maximumSelection = 1;\n }\n\n // If selectionType is 'MULTIPLE' and minSelection and maxSelection are not specified, set them to undefined\n if (\n this.selectionType === 'MULTIPLE' &&\n !this.minimumSelection &&\n !this.maximumSelection\n ) {\n this.minimumSelection = undefined;\n this.maximumSelection = undefined;\n }\n\n if(this.question.childLogics && this.question.answer){\n this.updateChildLogics(this.question)\n }\n }\n\n initializeCustomOption() {\n this.customOptions?.forEach((option: any) => {\n if (this.question?.answer?.find((a: any) => a.toString() === option.value.toString())) {\n this.selectedOptions.push(option);\n }\n })\n }\n\n onCheckboxChange(option: any, event: any) {\n if (this.selectionType === 'SINGLE') {\n if (event.target.checked) {\n this.selectedOptions = [option];\n this.question.answer = [option.value];\n } else {\n this.selectedOptions = [];\n this.question.answer = [];\n }\n this.isMinimumSelectionValid();\n } else if (this.selectionType === 'MULTIPLE') {\n if (event.target.checked) {\n if (!this.selectedOptions.includes(option)) {\n this.selectedOptions.push(option);\n }\n } else {\n this.selectedOptions = this.selectedOptions.filter(\n (item) => item !== option\n );\n }\n this.question.answer = this.selectedOptions.map((item) => item.value);\n this.isMinimumSelectionValid();\n }\n\n // Check if the number of selected options exceeds the maximum allowed\n if (\n this.maximumSelection !== undefined &&\n this.selectedOptions.length > this.maximumSelection\n ) {\n // If exceeded, uncheck the last selected option\n event.target.checked = false;\n this.selectedOptions = this.selectedOptions.filter(\n (item) => item !== option\n );\n this.question.answer = this.selectedOptions.map((item) => item.value);\n this.isMinimumSelectionValid();\n }\n\n if(this.question.childLogics){\n this.updateChildLogics(this.question);\n }\n }\n\n updateChildLogics(question: any) {\n if (question.childLogics && Array.isArray(question.childLogics)) {\n question.childLogics.forEach((childLogic: any) => {\n if(this.selectionType=='SINGLE'){\n if(this.selectedOptions.length==0){\n childLogic.showLogic=false;\n }\n else{\n childLogic.showLogic = this.evaluateCondition(this.selectedOptions[0]?.value, childLogic.condition, childLogic.inputValue);\n }\n }\n else if (this.selectionType === 'MULTIPLE') {\n if(this.selectedOptions.length==0){\n childLogic.show=false;\n }\n else{\n const selectedValues = this.selectedOptions.map((item: any) => item.value);\n childLogic.showLogic = this.evaluateMultipleCondition(selectedValues, childLogic.condition, childLogic.inputValue);\n }\n }\n });\n }\n }\n \n evaluateCondition(answer: any[], condition: string, inputValue: any): boolean {\n const stringInputValue = Array.isArray(inputValue) ? inputValue.map(val => val.toString()) : inputValue;\n\n switch (condition) { \n case \"!=\":\n return answer !=stringInputValue;\n case \"=\":\n return answer ==stringInputValue;\n case \"IN\":\n return stringInputValue.includes(answer);\n case \"NOT IN\":\n return !(stringInputValue.includes(answer))\n default:\n return false;\n }\n }\n\n evaluateMultipleCondition(answers: any[], condition: string, inputValue: any): boolean {\n const stringInputValue = Array.isArray(inputValue) ? inputValue.map(val => val.toString()) : inputValue.toString();\n switch (condition) {\n case \"!=\":\n return answers.every(answer => answer != stringInputValue);\n case \"=\":\n return answers.some(answer => answer == stringInputValue);\n case \"IN\":\n return answers.some(answer => stringInputValue.includes(answer));\n case \"NOT IN\":\n return answers.every(answer => !stringInputValue.includes(answer));\n default:\n return false;\n }\n }\n\n fetchDataFromLookup() {\n this.formService.fetchDataFromLookup(this.lookupTable).subscribe(\n (response) => {\n this.customOptions = response.result.values.map(\n (item: { value: string; label: string }) => ({\n value: item.value,\n label: item.label,\n })\n );\n if (this.question.answer) {\n this.initializeCustomOption();\n }\n },\n (error) => {\n console.error('HTTP Error:', error);\n }\n );\n }\n\n fetchDataFromDatabase() {\n const transformedDatabase = this.transformDatabaseObject(this.database);\n this.formService.fetchDataFromDatabase(transformedDatabase).subscribe(\n (response) => {\n if (response.success) {\n this.customOptions = response.result.map(\n (item: { value: string; label: string }) => ({\n value: item.value,\n label: item.label,\n })\n );\n if (this.question.answer) {\n this.initializeCustomOption();\n }\n } else {\n console.error('Error fetching data from database:', response.message);\n }\n },\n (error) => {\n console.error('HTTP Error:', error);\n }\n );\n }\n\n transformDatabaseObject(database: any) {\n return {\n tableName: database.tableName,\n valueField: database.valueField,\n labelField: database.labelField,\n criteria: database.criteria.map((criteria: any) => ({\n field: criteria?.field,\n valueSource:criteria?.valueSource,\n condition: criteria?.condition,\n value: criteria?.inputValue,\n logicalOperator: criteria?.logicalOperator,\n })),\n };\n }\n\n fetchDataFromAPI() {\n const apiConfig = this.api;\n this.formService.fetchDataFromExternalAPI(apiConfig.url).subscribe(\n (response) => {\n const data = this.extractDataByPath(response, apiConfig.pathToValue);\n this.customOptions = data.map((item: any) => ({\n value: item[apiConfig.valueField],\n label: item[apiConfig.labelField],\n }));\n if (this.question.answer) {\n \n this.initializeCustomOption();\n \n }\n },\n (error) => {\n console.error('HTTP Error:', error);\n }\n );\n }\n\n extractDataByPath(data: any, path: string) {\n return path.split('.').reduce((acc, part) => acc && acc[part], data);\n }\n\n isMinimumSelectionValid() {\n this.validationFailed = false;\n \n if (this.selectedOptions.length == 0 && this.required) {\n this.validationFailed = true;\n this.validationMessage = 'This is a required question';\n this.question.validation = false;\n } else if (this.minimumSelection !== undefined) {\n if(this.selectionType=='SINGLE'){\n if (this.selectedOptions.length < this.minimumSelection && this.required) {\n this.validationFailed = true;\n this.validationMessage = `Minimum ${this.minimumSelection} selection(s) required.`;\n this.question.validation = false;\n }\n else {\n this.question.validation = true;\n }\n }\n else{\n if (this.selectedOptions.length < this.minimumSelection) {\n this.validationFailed = true;\n this.validationMessage = `Minimum ${this.minimumSelection} selection(s) required.`;\n this.question.validation = false;\n }\n else {\n this.question.validation = true;\n }\n }\n } else {\n this.question.validation = true;\n }\n }\n\n getOptions() {\n if (this.optionType === 'OPTION') {\n return this.customOptions;\n } else if (this.optionType === 'LOOKUP') {\n return Object.values(this.lookupTable);\n } else if (this.optionType === 'API') {\n return this.apiOptions.map((option) => option.valueField);\n } else {\n return [];\n }\n }\n\n isOptionDisabled(option: any): boolean {\n return (\n this.maximumSelection !== undefined &&\n this.selectedOptions.length >= this.maximumSelection &&\n !this.selectedOptions.includes(option)\n );\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <div class=\"form-check\" *ngFor=\"let option of customOptions\">\n <input\n class=\"form-check-input\"\n type=\"checkbox\"\n [id]=\"option.value + question?.id\"\n [name]=\"option.value + 'Checkbox'\"\n [value]=\"option.value\"\n (change)=\"onCheckboxChange(option, $event)\"\n [disabled]=\"isOptionDisabled(option)\"\n [checked]=\"selectedOptions.includes(option)\"\n />\n <label\n class=\"formCheckLabel ms-2 me-4 mb-2\"\n [for]=\"option.value + question?.id\"\n *ngIf=\"optionType == 'OPTION'\"\n >{{ option.value }}</label\n >\n <label\n class=\"formCheckLabel ms-2 me-4\"\n [for]=\"option.value + question?.id\"\n *ngIf=\"optionType == 'LOOKUP' || 'DATABASE' || 'API'\"\n >{{ option.label }}</label\n >\n </div>\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n","import { DatePipe } from '@angular/common';\nimport { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport {\n BsDatepickerConfig,\n BsDatepickerDirective,\n} from 'ngx-bootstrap/datepicker';\n\n@Component({\n selector: 'lib-date-time-fields',\n templateUrl: './date-time-fields.component.html',\n styleUrls: ['./date-time-fields.component.scss'],\n providers: [DatePipe]\n})\nexport class DateTimeFieldsComponent {\n bsConfig: Partial<BsDatepickerConfig> = {\n containerClass: 'theme-red',\n };\n\n @Input() question: any = {};\n required: boolean = false;\n hint: string = '';\n count: number = 0;\n dateType: string = '';\n format: string = '';\n minDateOption: string = '';\n minDate: Date | undefined;\n maxDateOption: string = '';\n maxDate: Date | undefined;\n todayDate: Date = new Date();\n selectedDate: string = '';\n selectedTime: string = '';\n selectedDateRange: string = '';\n selectedDateAndTime: string = '';\n validationFailed!: boolean;\n validationMessage: string = '';\n @ViewChild('datepickerYMD') datepicker!: BsDatepickerDirective;\n @ViewChild('daterangepicker') dateRangePicker!: BsDatepickerDirective;\n @ViewChild('dateAndTimePicker') dateAndTimePicker!: BsDatepickerDirective;\n constructor(private datePipe: DatePipe) { }\n\n ngOnInit() {\n this.valueAssigned();\n }\n\n valueAssigned() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.dateType = this.question.formElement.appearance.dateType;\n this.minDateOption = this.question.formElement.validation.minDateOption;\n this.minDate = this.getMinDate();\n this.maxDateOption = this.question.formElement.validation.maxDateOption;\n this.maxDate = this.getMaxDate();\n this.setDateTimeFormat();\n this.selectedDate = this.question.answer;\n this.selectedTime = this.question.answer;\n this.selectedDateAndTime = this.question.answer;\n this.selectedDateRange = this.question.answer;\n }\n\n setDateTimeFormat() {\n switch (this.dateType) {\n case 'DATE_ONLY':\n this.format = 'DD/MM/YYYY';\n break;\n case 'TIME_ONLY':\n this.format = 'HH:mm';\n break;\n case 'DATE_AND_TIME':\n this.format = 'DD/MM/YYYY HH:mm';\n break;\n case 'DATE_RANGE':\n this.format = 'DD/MM/YYYY';\n break;\n default:\n this.format = 'DD/MM/YYYY';\n }\n }\n\n getMinDate(): Date | undefined {\n if (this.minDateOption === 'TODAY') {\n return this.todayDate;\n } else if (this.minDateOption === 'CUSTOM') {\n return new Date(this.question.formElement.validation.minDate);\n }\n return undefined; // Return undefined if no valid option\n }\n\n getMaxDate(): Date | undefined {\n if (this.maxDateOption === 'TODAY') {\n return this.todayDate;\n } else if (this.maxDateOption === 'CUSTOM') {\n return new Date(this.question.formElement.validation.maxDate);\n }\n return undefined;\n }\n\n openDatePicker() {\n this.datepicker.toggle();\n }\n\n openDateRangePicker() {\n this.dateRangePicker.toggle();\n }\n\n openDateAndTimePicker() {\n this.dateAndTimePicker.toggle();\n }\n\n validateField() {\n if (this.dateType === 'DATE_ONLY') {\n this.question.answer = this.formatDate(this.selectedDate);\n this.validateDateOnly()\n }\n else if(this.dateType === 'TIME_ONLY'){\n this.question.answer=String(this.selectedTime);\n this.validateTimeOnly()\n }\n else if (this.dateType === 'DATE_AND_TIME') {\n this.question.answer = this.formatDate(this.selectedDateAndTime);\n this.validateDateAndTime()\n }\n else {\n this.question.answer = this.formatDate(this.selectedDateRange);\n this.validateDateRange()\n }\n }\n\n formatDate(date: string | Date, type: string = 'dateTime'): string {\n switch (this.dateType) {\n case 'DATE_ONLY':\n return this.datePipe.transform(date, 'dd/MM/yyyy') || '';\n case 'DATE_AND_TIME':\n return this.datePipe.transform(date, 'dd/MM/yyyy HH:mm') || '';\n case 'DATE_RANGE':\n const dates = date as unknown as Date[];\n if (dates.length === 2) {\n const start = this.datePipe.transform(dates[0], 'dd/MM/yyyy');\n const end = this.datePipe.transform(dates[1], 'dd/MM/yyyy');\n return `${start} - ${end}`;\n }\n return '';\n default:\n return this.datePipe.transform(date, 'dd/MM/yyyy') || '';\n }\n }\n\n validateDateOnly() {\n this.validationFailed = false;\n this.validationMessage = '';\n if (this.required && !this.selectedDate) {\n this.validationFailed = true;\n this.validationMessage = 'This is a required question';\n this.question.validation = false;\n }\n else {\n this.question.validation = true;\n }\n }\n validateTimeOnly() {\n this.validationFailed = false;\n this.validationMessage = '';\n if (this.required && !this.selectedTime) {\n this.validationFailed = true;\n this.validationMessage = 'This is a required question';;\n this.question.validation = false;\n }\n else {\n this.question.validation = true;\n }\n }\n validateDateRange() {\n this.validationFailed = false;\n this.validationMessage = '';\n if (this.required && !this.selectedDateRange) {\n this.validationFailed = true;\n this.validationMessage = 'This is a required question';\n this.question.validation = false;\n }\n else {\n this.question.validation = true;\n }\n }\n validateDateAndTime() {\n this.validationFailed = false;\n this.validationMessage = '';\n if (this.required && !this.selectedDateAndTime) {\n this.validationFailed = true;\n this.validationMessage = 'This is a required question';\n this.question.validation = false;\n }\n else {\n this.question.validation = true;\n }\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <ng-container *ngIf=\"dateType === 'DATE_ONLY'\">\n <!-- Date only picker -->\n <div class=\"input-container\">\n <input\n class=\"form-control height\"\n #datepickerYMD=\"bsDatepicker\"\n bsDatepicker\n [minDate]=\"minDate ? minDate : todayDate\"\n [maxDate]=\"maxDate ? maxDate : todayDate\"\n [bsConfig]=\"{ dateInputFormat: format }\"\n [(ngModel)]=\"selectedDate\"\n (blur)=\"validateField()\"\n (ngModelChange)=\"validateField()\"\n [class.invalid]=\"validationFailed\"\n />\n <i\n class=\"fa-solid fa-calendar-days calendar-icon text-primary fs-5\"\n (click)=\"openDatePicker()\"\n ></i>\n </div>\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"dateType === 'TIME_ONLY'\">\n <!-- Time picker -->\n <input\n type=\"time\"\n class=\"form-control height\"\n (blur)=\"validateField()\"\n [(ngModel)]=\"selectedTime\"\n (ngModelChange)=\"validateField()\"\n [class.invalid]=\"validationFailed\"\n />\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"dateType === 'DATE_AND_TIME'\">\n <!-- Date and time picker -->\n <div class=\"input-container\">\n <input\n #dateAndTimePicker=\"bsDatepicker\"\n type=\"text\"\n class=\"form-control height\"\n [minDate]=\"minDate ? minDate : todayDate\"\n [maxDate]=\"maxDate ? maxDate : todayDate\"\n [bsConfig]=\"{\n withTimepicker: true,\n keepDatepickerOpened: true,\n rangeInputFormat: format,\n dateInputFormat: format\n }\"\n bsDatepicker\n [class.invalid]=\"validationFailed\"\n [(ngModel)]=\"selectedDateAndTime\"\n (blur)=\"validateField()\"\n (ngModelChange)=\"validateField()\"\n />\n <i\n class=\"fa-solid fa-calendar-days calendar-icon text-primary fs-5\"\n (click)=\"openDateAndTimePicker()\"\n ></i>\n </div>\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"dateType === 'DATE_RANGE'\">\n <!-- Date range picker -->\n <div class=\"input-container\">\n <input\n type=\"text\"\n class=\"form-control height\"\n #daterangepicker=\"bsDaterangepicker\"\n bsDaterangepicker\n [minDate]=\"minDate ? minDate : todayDate\"\n [maxDate]=\"maxDate ? maxDate : todayDate\"\n [bsConfig]=\"{\n rangeInputFormat: format,\n dateInputFormat: format,\n showWeekNumbers: false\n }\"\n [(ngModel)]=\"selectedDateRange\"\n (blur)=\"validateField()\"\n (ngModelChange)=\"validateField()\"\n [class.invalid]=\"validationFailed\"\n />\n <i\n class=\"fa-solid fa-calendar-days calendar-icon text-primary fs-5\"\n (click)=\"openDateRangePicker()\"\n ></i>\n </div>\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n </ng-container>\n</div>\n","import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormService } from '../../services/form.service';\n\ninterface DropDownData {\n value: string;\n label: string;\n image: string;\n}\n\n@Component({\n selector: 'lib-drop-down-fields',\n templateUrl: './drop-down-fields.component.html',\n styleUrls: ['./drop-down-fields.component.scss'],\n})\nexport class DropDownFieldsComponent {\n @Input() question: any = {};\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n selectionType: string = '';\n minimumSelection: number = 0;\n maximumSelection: number = 0;\n optionType: string = '';\n lookupTable: string = '';\n customOptions: DropDownData[] = [];\n database: any = {};\n api: any = {};\n selectedValue: any[] = [];\n validationFailed!: boolean;\n validationMessage: string = '';\n\n constructor(private formService: FormService,\n private cdr:ChangeDetectorRef\n ) { }\n\n ngOnInit() {\n this.valueAssigned();\n }\n\n onValueChange(newValue: any) {\n this.selectedValue = newValue;\n this.selectItems();\n }\n\n valueAssigned() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.selectionType = this.question.formElement.appearance.selectionType;\n this.minimumSelection =\n this.question.formElement.validation.minimumSelection;\n this.maximumSelection =\n this.question.formElement.validation.maximumSelection;\n this.optionType = this.question.formElement.option.optionType;\n\n switch (this.optionType) {\n case 'OPTION':\n this.customOptions = this.question.formElement.option.customOptions.map(\n (option: { value: string }) => ({\n label: option.value,\n value: option.value,\n image: '',\n })\n );\n if (this.question.answer) {\n this.initializeCustomOption();\n }\n break;\n case 'LOOKUP':\n this.lookupTable = this.question.formElement.option.lookupTable;\n this.fetchDataFromLookup();\n break;\n case 'DATABASE':\n this.database = this.question.formElement.option.database;\n this.fetchDataFromDatabase();\n break;\n case 'API':\n this.api = this.question.formElement.option.api;\n this.fetchDataFromAPI();\n break;\n default:\n console.warn('Unknown option type:', this.optionType);\n }\n\n if(this.question.childLogics && this.question.answer){\n this.updateChildLogics(this.question)\n }\n }\n\n initializeCustomOption() {\n this.customOptions.forEach((option: any) => {\n if (this.question?.answer?.find((a: any) => a.toString() === option.value.toString())) { \n this.selectedValue.push(option);\n }\n })\n this.cdr.detectChanges();\n }\n\n transformDatabaseObject(database: any) {\n return {\n tableName: database.tableName,\n valueField: database.valueField,\n labelField: database.labelField,\n criteria: database.criteria.map((criteria: any) => ({\n field: criteria.field,\n valueSource:criteria?.valueSource,\n condition: criteria.condition,\n value: criteria.inputValue,\n logicalOperator: criteria.logicalOperator,\n })),\n };\n }\n\n\n fetchDataFromDatabase() {\n const transformedDatabase = this.transformDatabaseObject(this.database);\n this.formService.fetchDataFromDatabase(transformedDatabase).subscribe(\n (response) => {\n if (response.success) {\n this.customOptions = response.result.map(\n (item: { value: string; label: string }) => ({\n value: item.value,\n label: item.label,\n })\n );\n if (this.question.answer) {\n this.initializeCustomOption();\n }\n } else {\n console.error('Error fetching data from database:', response.message);\n }\n this.cdr.detectChanges();\n },\n (error) => {\n console.error('HTTP Error:', error);\n this.cdr.detectChanges();\n }\n );\n }\n\n fetchDataFromLookup() {\n this.formService.fetchDataFromLookup(this.lookupTable).subscribe(\n (response) => {\n this.customOptions = response.result.values.map(\n (item: { value: string; label: string }) => ({\n value: item.value,\n label: item.label,\n })\n );\n if (this.question.answer) {\n this.initializeCustomOption();\n }\n },\n (error) => {\n console.error('HTTP Error:', error);\n }\n );\n }\n\n fetchDataFromAPI() {\n const apiConfig = this.api;\n this.formService.fetchDataFromExternalAPI(apiConfig.url).subscribe(\n (response) => {\n const data = this.extractDataByPath(response, apiConfig.pathToValue);\n this.customOptions = data.map((item: any) => ({\n value: item[apiConfig.valueField],\n label: item[apiConfig.labelField],\n }));\n if (this.question.answer) {\n this.initializeCustomOption();\n }\n },\n (error) => {\n console.error('HTTP Error:', error);\n }\n );\n }\n\n extractDataByPath(data: any, path: string) {\n return path.split('.').reduce((acc, part) => acc && acc[part], data);\n }\n\n selectItems() {\n const valuesArray = this.selectedValue.map(item => item.value);\n this.question.answer = valuesArray;\n this.validationFailed = false;\n this.validationMessage = ''; \n if (this.selectedValue.length == 0 && this.required) {\n this.validationFailed = true;\n this.validationMessage = `This is a required question`;\n this.question.validation = false;\n } else if (\n this.selectedValue.length < this.minimumSelection ||\n this.selectedValue.length > this.maximumSelection\n ) {\n this.validationFailed = true;\n this.validationMessage = `selected options must be between ${this.minimumSelection} & ${this.maximumSelection}`;\n this.question.validation = false;\n }\n else {\n this.question.validation = true;\n }\n if (this.question.childLogics) {\n this.updateChildLogics(this.question);\n }\n }\n\n updateChildLogics(question: any) {\n if (question.childLogics && Array.isArray(question.childLogics)) {\n question.childLogics.forEach((childLogic: any) => {\n if(this.selectionType=='SINGLE'){\n if(this.selectedValue.length==0){\n childLogic.show=false;\n }\n else{\n const selectedValue=this.selectedValue[0]?.value\n childLogic.showLogic = this.evaluateCondition(selectedValue, childLogic.condition, childLogic.inputValue);\n }\n \n }\n else if (this.selectionType === 'MULTIPLE') {\n if(this.selectedValue.length==0){\n childLogic.show=false;\n }\n else{\n const selectedValues = this.selectedValue.map((item: any) => item.value);\n childLogic.showLogic = this.evaluateMultipleCondition(selectedValues, childLogic.condition, childLogic.inputValue);\n }\n }\n });\n }\n }\n\n evaluateCondition(answer: any[], condition: string, inputValue: any): boolean {\n switch (condition) {\n case \"!=\":\n return answer != inputValue;\n case \"=\":\n return answer == inputValue;\n default:\n return false;\n }\n }\n\n evaluateMultipleCondition(answers: any[], condition: string, inputValue: any): boolean {\n const stringInputValue = Array.isArray(inputValue) ? inputValue.map(val => val.toString()) : inputValue.toString();\n switch (condition) {\n case \"!=\":\n return answers.every(answer => answer != stringInputValue);\n case \"=\":\n return answers.some(answer => answer == stringInputValue);\n case \"IN\":\n return answers.some(answer => stringInputValue.includes(answer));\n case \"NOT IN\":\n return answers.every(answer => !stringInputValue.includes(answer));\n default:\n return false;\n }\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <lib-dropdown\n [items]=\"customOptions\"\n [multiple]=\"selectionType === 'SINGLE' ? false : true\"\n (click)=\"selectItems()\"\n [(selectedItems)]=\"selectedValue\"\n ></lib-dropdown>\n <div *ngIf=\"validationFailed\" class=\"text-danger mb-2\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\n\nexport interface Attachment {\n fileId: string;\n fileName: string;\n fileUrl: string;\n}\n\n@Component({\n selector: 'lib-file-picker-fields',\n templateUrl: './file-picker-fields.component.html',\n styleUrls: ['./file-picker-fields.component.scss'],\n})\nexport class FilePickerFieldsComponent {\n @Input() question: any = {};\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n multiFileUploads: boolean = true;\n fileTypes: string[] = [];\n fileSize: number = 0;\n fileSizeUnit: string = '';\n totalFileSize: number = 0;\n initialFileSize: number = 0;\n initialTotalSize: number = 0;\n dragAndDrop: boolean = true;\n previewUploadedFiles: boolean = true;\n validationFailed: boolean = false;\n validationMessage: string = '';\n attachments: Attachment[] = [];\n\n avatarPicker: boolean = false;\n files: any;\n\n handleFileTypeNotAllowed(fileType: string): void {\n this.validationFailed = true;\n this.validationMessage = 'File type not allowed';\n }\n\n handleFileSize(event: string): void {\n this.validationFailed = true;\n if (event === 'File size exceeds the limit') {\n this.validationMessage = `${event} ${this.initialFileSize} ${this.fileSizeUnit}`;\n } else if (event === 'Total size exceeds the limit') {\n this.validationMessage = `${event} ${this.initialTotalSize} ${this.fileSizeUnit}`;\n } else {\n this.validationMessage = event;\n }\n this.clearValidationMessageAfterTimeout();\n }\n\n clearValidationMessageAfterTimeout(): void {\n setTimeout(() => {\n this.validationMessage = '';\n this.validationFailed = false;\n }, 5000); // Timeout set to 5 seconds\n }\n\n\n handleFinalArray(fileType: any[]): void {\n const extractedData = fileType.map((item: any) => ({\n name: item._file.name,\n size: item._file.size,\n type: item._file.type,\n }));\n const jsonString = JSON.stringify(extractedData);\n this.question.answer = fileType;\n }\n\n ngOnInit() {\n this.valueAssigned();\n }\n\n valueAssigned() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.multiFileUploads =\n this.question.formElement.appearance.multiFileUploads;\n this.dragAndDrop = this.question.formElement.appearance.dragAndDrop;\n this.previewUploadedFiles =\n this.question.formElement.appearance.previewUploadedFiles;\n this.fileTypes = this.question.formElement.validation.fileTypes;\n this.fileSizeUnit = this.question.formElement.validation.fileSizeUnit;\n this.avatarPicker = this.question.formElement.appearance.avatarPicker;\n this.initialFileSize = this.question.formElement.validation?.fileSize;\n this.fileSize = this.convertToBytes(\n this.initialFileSize,\n this.fileSizeUnit\n );\n this.initialTotalSize = this.question.formElement.validation?.totalFileSize;\n this.totalFileSize = this.convertToBytes(\n this.initialTotalSize,\n this.fileSizeUnit\n );\n\n if (this.question.answer) {\n this.files = this.question.answer;\n }\n\n this.attachments = this.question?.attachments;\n }\n convertToBytes(size: number, unit: string): number {\n const units: { [key: string]: number } = {\n B: 1,\n KB: 1024,\n MB: 1024 * 1024,\n GB: 1024 * 1024 * 1024,\n };\n return size * (units[unit.toUpperCase()] || 1);\n }\n\n selectedFile!: File;\n selectedFiles: any = [];\n\n onFileChange(event: any) {\n const file: File = event.target.files[0];\n this.selectedFile = file;\n this.selectedFiles.push(this.selectedFile);\n this.question.answer = this.selectedFiles;\n }\n\n deleteFiles(event: any) {\n this.question.deleteFiles = event;\n this.question.attachments = this.question.attachments.filter(\n (item: any) => {\n return !event.includes(item.fileId);\n }\n );\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <lib-docUpload\n [totalSize]=\"totalFileSize\"\n [fileAllowed]=\"fileTypes\"\n [multiple]=\"multiFileUploads\"\n [fileSize]=\"fileSize\"\n [avatarPicker]=\"avatarPicker\"\n (fileTypeNotAllowed)=\"handleFileTypeNotAllowed($event)\"\n (fileSizeAllowed)=\"handleFileSize($event)\"\n (finalArray)=\"handleFinalArray($event)\"\n [attachments] = \"attachments\"\n (deleteFiles)=\"deleteFiles($event)\"\n [files]=\"files\"\n ></lib-docUpload>\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n","import { Component, Input, ViewChild, ElementRef } from '@angular/core';\nimport { GoogleMap } from '@angular/google-maps';\n\n@Component({\n selector: 'lib-location-fields',\n templateUrl: './location-fields.component.html',\n styleUrls: ['./location-fields.component.scss'],\n})\nexport class LocationFieldsComponent {\n @Input() question: any = {};\n @ViewChild('mapSearchField')\n searchField!: ElementRef;\n @ViewChild(GoogleMap) map!: GoogleMap;\n\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n defaultZoomLevel: number = 0;\n setCurrentPosition: boolean = false;\n allowFullScreen: boolean = false;\n latitude: number = 0;\n longitude: number = 0;\n regionBoundary: boolean = false;\n region: string = '';\n showGoogleMap!: boolean;\n mapConfigurations: any = {};\n\n ngOnInit() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.defaultZoomLevel =\n this.question.formElement.appearance.defaultZoomLevel;\n this.setCurrentPosition =\n this.question.formElement.appearance.setCurrentPosition;\n this.allowFullScreen = this.question.formElement.appearance.allowFullScreen;\n this.latitude = this.question.formElement.appearance.latitude;\n this.longitude = this.question.formElement.appearance.longitude;\n this.regionBoundary = this.question.formElement.validation.regionBoundary;\n this.region = this.question.formElement.validation.region;\n this.mapConfigurations = {\n disableDefaultUI: true,\n fullscreenControl: this.allowFullScreen,\n zoomControl: true,\n };\n }\n\n ngAfterViewInit(): void {\n const searchBox = new google.maps.places.SearchBox(\n this.searchField.nativeElement\n );\n\n this.map.controls[google.maps.ControlPosition.TOP_CENTER].push(\n this.searchField.nativeElement\n );\n\n searchBox.addListener('places_changed', () => {\n const places = searchBox.getPlaces();\n if (places?.length === 0) {\n return;\n }\n\n const bounds = new google.maps.LatLngBounds();\n places?.forEach((place) => {\n if (!place.geometry || !place.geometry.location) {\n return;\n }\n\n if (place.geometry.viewport) {\n // Only geocodes have viewport.\n bounds.union(place.geometry.viewport);\n } else {\n bounds.extend(place.geometry.location);\n }\n });\n\n this.map.fitBounds(bounds);\n });\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <div class=\"input-group\">\n <input\n type=\"text\"\n class=\"form-control location-input\"\n placeholder=\"Enter location\"\n #locationInput\n />\n </div>\n\n <input #mapSearchField class=\"my-map-search-field\" type=\"text\" />\n <google-map width=\"100%\" [options]=\"mapConfigurations\"></google-map>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'lib-mail-fields',\n templateUrl: './mail-fields.component.html',\n styleUrls: ['./mail-fields.component.scss'],\n})\nexport class MailFieldsComponent {\n @Input() question: any = {};\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n placeholder: string = '';\n expectedDomains: string[] = [];\n regularExpression: string = '';\n email: string = '';\n validationFailed: boolean = false;\n validationMessage: string = '';\n\n ngOnInit() {\n this.valueAssigned();\n }\n\n valueAssigned() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.placeholder = this.question.formElement?.appearance?.placeholder || '';\n this.expectedDomains =\n this.question?.formElement?.validation?.expectedDomains\n ?.split(',')\n .map((domain: any) => domain.trim());\n this.regularExpression =\n this.question.formElement.validation.regularExpression;\n this.email = this.question?.answer \n }\n\n validateEmail() {\n this.validationFailed = false;\n this.validationMessage = '';\n const enteredEmail = this.email?.trim().toLowerCase();\n if (this.required && !this.email) {\n this.validationFailed = true;\n this.validationMessage = 'This is a required question';\n this.question.validation = false;\n } else if (this.expectedDomains) {\n const isValidEmail = this.expectedDomains?.some((domain) =>\n enteredEmail.endsWith(domain)\n );\n this.validationFailed = !isValidEmail;\n this.validationMessage = 'Please enter valid email address';\n if (this.validationFailed) {\n this.question.validation = false;\n }\n else {\n this.question.validation = true;\n }\n }\n else {\n this.question.validation = true;\n }\n }\n validateInput(event: any) {\n this.question.answer = event.target.value;\n this.validateEmail();\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <input\n type=\"email\"\n class=\"form-control mb-2 height\"\n [placeholder]=\"placeholder\"\n [(ngModel)]=\"email\"\n (blur)=\"validateEmail()\"\n (input)=\"validateInput($event)\"\n [class.invalid]=\"validationFailed\"\n />\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { DataService } from './data.service';\n\ninterface CountryData {\n value: string;\n label: string;\n image: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CountryService {\n private apiUrl: string = '';\n header: any = {};\n\n constructor(private http: HttpClient, private dataService: DataService) {\n this.dataService.apiUrl$.subscribe((data) => {\n this.apiUrl = data;\n });\n }\n\n loadCountryDetails(questionId: string, page: number, size: number, searchKey: string): Observable<any> {\n return this.http.get<any>(`${this.apiUrl}/api/public/json/country/${questionId}?page=${page}&size=${size}&searchKey=${searchKey}`);\n }\n\n processCountryDetails(\n data: any[],\n displayFlag: boolean,\n displayCode: boolean,\n showCountryName: boolean\n ): CountryData[] {\n const countryDetails: CountryData[] = [];\n\n data.forEach((country) => {\n const name = showCountryName ? country.name || '' : '';\n let flag = '';\n if (displayFlag && country.flag) {\n flag = country.flag;\n }\n\n if (\n displayCode &&\n country.isd &&\n country.isd.root &&\n country.isd.suffixes?.length > 0\n ) {\n country.isd.suffixes.forEach((suffix: string) => {\n const isdCode = `${country.isd.root}${suffix}`;\n countryDetails.push({\n value: isdCode,\n label: `${name} ${isdCode}`,\n image: flag,\n });\n });\n } else if (displayCode) {\n countryDetails.push({\n value: name,\n label: country.isd?.root || '',\n image: flag,\n });\n } else if (!displayCode && !displayFlag) {\n countryDetails.push({\n value: name,\n label: '',\n image: '',\n });\n }\n });\n\n return countryDetails;\n }\n}\n","import { Component, EventEmitter, Input, Output, OnInit } from '@angular/core';\nimport { CountryService } from '../../services/countryService';\n\ninterface CountryData {\n value: string;\n label: string;\n image: string;\n}\n\ninterface filteredCountry {\n name: string;\n flag: string;\n isd: {};\n languages: {};\n}\n\n@Component({\n selector: 'lib-mobile-fields',\n templateUrl: './mobile-fields.component.html',\n styleUrls: ['./mobile-fields.component.scss'],\n})\nexport class MobileFieldsComponent implements OnInit {\n @Input() question: any = {};\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n placeholder: string = '';\n displayCountryCode: boolean = true;\n displayFlag: boolean = true;\n displayCode: boolean = true;\n showCountryName: boolean = true;\n beautifyNumbers: boolean = true;\n countryWiseValidation: boolean = true;\n countryDetails: CountryData[] = [];\n selectedCountry: CountryData[] = [];\n validationFailed: boolean = false;\n validationMessage: string = '';\n mobileNumber: string = '';\n filteredCountry: filteredCountry[] = [];\n questionId: string = '';\n currentPage: number = 0;\n size: number = 30;\n totalPages: number = 0;\n searchKey: string = '';\n constructor(private countryService: CountryService) { }\n\n ngOnInit() {\n this.valueAssigned();\n }\n\n valueAssigned() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.placeholder = this.question.formElement.appearance.placeholder;\n this.displayCountryCode =\n this.question.formElement.appearance.displayCountryCode;\n this.displayFlag = this.question.formElement.appearance.displayFlag;\n this.displayCode = this.question.formElement.appearance.displayCode;\n this.showCountryName = this.question.formElement.appearance.showCountryName;\n this.beautifyNumbers = this.question.formElement.appearance.beautifyNumbers;\n this.countryWiseValidation =\n this.question.formElement.validation.countryWiseValidation;\n this.questionId = this.question.id;\n this.loadCountry(this.questionId, this.currentPage, this.size, this.searchKey);\n }\n\n\n initializeAnswer() {\n const [countryCode, mobileNumber] = this.question?.answer?.split(' ');\n this.mobileNumber = mobileNumber || '';\n\n const matchedCountry = this.countryDetails.find(country => country.value === countryCode);\n if (matchedCountry) {\n this.selectedCountry.push(matchedCountry);\n } \n }\n\n onCountryChange() {\n this.validationFailed = false;\n this.validationMessage = '';\n\n if (this.required && (!this.mobileNumber || this.selectedCountry.length === 0)) {\n this.validationFailed = true;\n this.validationMessage = 'This is a required question';\n } else {\n this.updateAnswer();\n }\n\n this.updateAnswer();\n }\n\n onMobileNumberChange() {\n this.updateAnswer();\n }\n\n updateAnswer() {\n if (this.selectedCountry.length > 0 && this.mobileNumber) {\n const countryCode = this.selectedCountry[0].value;\n this.question.answer = `${countryCode} ${this.mobileNumber}`;\n } else {\n this.question.answer = '';\n }\n }\n\n validateMobile() {\n this.validationFailed = false;\n this.validationMessage = '';\n\n if (this.required && (!this.mobileNumber || this.selectedCountry.length === 0)) {\n this.validationFailed = true;\n this.validationMessage = 'This is a required question';\n } else {\n this.updateAnswer();\n }\n }\n\n loadCountry(id: string, page: number, size: number, searchKey: string) {\n this.countryService.loadCountryDetails(this.questionId, this.currentPage, this.size, this.searchKey).subscribe((data) => {\n if (this.totalPages === 0) {\n this.totalPages = data.result.totalPages;\n }\n\n this.countryDetails = [...this.countryDetails, ...this.countryService.processCountryDetails(\n data.result.content,\n this.displayFlag,\n this.displayCode,\n this.showCountryName\n )];\n\n // if (this.currentPage < this.totalPages - 1) {\n // this.currentPage++;\n // this.loadCountry(this.questionId, this.currentPage, this.size, this.searchKey);\n // }\n if (this.question.answer) {\n this.initializeAnswer();\n }\n });\n\n }\n\n onScroll() {\n if (this.currentPage < this.totalPages) {\n this.currentPage++;\n this.loadCountry(this.questionId, this.currentPage, this.size, this.searchKey);\n }\n }\n\n}\n\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <div class=\"input-group mb-2\">\n <div class=\"col-xs-5 col-5 col-md-3 px-0 pe-2 ps-2\">\n <lib-dropdown\n [items]=\"countryDetails\"\n [multiple]=\"false\"\n [(selectedItems)]=\"selectedCountry\"\n (selectedItemsChange)=\"onCountryChange()\"\n (onScroll)=\"onScroll()\"\n ></lib-dropdown>\n </div>\n <input\n type=\"number\"\n class=\"form-control col-xs-7 col-7 col-md-9 height mobileField\"\n [placeholder]=\"placeholder\"\n aria-label=\"Mobile Number\"\n [class.invalid]=\"validationFailed\"\n (blur)=\"validateMobile()\"\n [(ngModel)]=\"mobileNumber\"\n (ngModelChange)=\"onMobileNumberChange()\"\n />\n </div>\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Logic } from '../../models/logic.model';\n\n@Component({\n selector: 'lib-number-fields',\n templateUrl: './number-fields.component.html',\n styleUrls: ['./number-fields.component.scss'],\n})\nexport class NumberFieldsComponent {\n @Input() question: any = {};\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n upDown!: boolean;\n allowNegativeValues!: boolean;\n placeholder: string ='';\n min!: number;\n max!: number;\n enteredNumber!: number;\n validationFailed: boolean = false;\n validationMessage: string = '';\n\n ngOnInit() {\n this.valueAssigned();\n }\n\n valueAssigned() { \n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.upDown = this.question.formElement.appearance.upAndDownButton;\n this.allowNegativeValues =\n this.question.formElement.appearance.allowNegativeValues;\n this.placeholder = this.question.formElement?.appearance?.placeholder || '';\n this.min = this.question.formElement.validation.min;\n this.max = this.question.formElement.validation.max;\n this.enteredNumber = this.question?.answer;\n if(this.question.childLogics && this.question.answer){\n this.updateChildLogics(this.question)\n }\n }\n validateNumber() {\n this.validationFailed = false;\n this.validationMessage = '';\n if (this.required && !this.enteredNumber) {\n this.validationFailed = true;\n this.validationMessage = `Please enter a valid number`;\n this.question.validation = false;\n } else if (!this.allowNegativeValues && this.enteredNumber < 0) {\n this.validationFailed = true;\n this.validationMessage = 'Please enter a positive number';\n this.question.validation = false;\n } else if (this.enteredNumber < this.min || this.enteredNumber > this.max) {\n this.validationFailed = true;\n this.validationMessage = `Please enter a valid number between ${this.min} and ${this.max}`;\n this.question.validation = false;\n }\n else {\n this.question.validation = true;\n }\n if(this.question.childLogics){\n this.updateChildLogics(this.question);\n }\n }\n\n validateInput(event: any) {\n this.question.answer = event.target.value; \n if(this.question.childLogics){\n this.updateChildLogics(this.question);\n }\n }\n\n updateChildLogics(question:any) {\n if (question.childLogics && Array.isArray(question.childLogics)) {\n question.childLogics.forEach((childLogic:any) => {\n if(question.answer==''){\n childLogic.showLogic=false;\n this.clearAnswer(childLogic);\n return;\n } \n if (this.evaluateCondition(question.answer, childLogic.condition, childLogic.inputValue)) {\n childLogic.showLogic = true;\n }\n else{\n childLogic.showLogic = false;\n this.clearAnswer(childLogic);\n }\n });\n }\n }\n\n evaluateCondition(answer:any, condition:any, inputValue:any) { \n switch (condition) {\n case \">\":\n return answer > Number(inputValue);\n case \"<\":\n return answer < Number(inputValue);\n case \">=\":\n return answer >= Number(inputValue);\n case \"<=\":\n return answer <= Number(inputValue);\n case \"=\":\n return answer == inputValue;\n default:\n return false;\n }\n }\n\n clearAnswer(childLogic:Logic){\n childLogic.formElements.forEach((formElement:any)=>{\n if(formElement.entityType == 'QUESTION'){ \n formElement.element.answer = '';\n }\n })\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <input\n type=\"number\"\n class=\"form-control mb-2 height\"\n [placeholder]=\"placeholder\"\n [class.hide-spin-buttons]=\"!upDown\"\n (blur)=\"validateNumber()\"\n [(ngModel)]=\"enteredNumber\"\n [class.invalid]=\"validationFailed\"\n (input)=\"validateInput($event)\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n />\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'lib-password-fields',\n templateUrl: './password-fields.component.html',\n styleUrls: ['./password-fields.component.scss'],\n})\nexport class PasswordFieldsComponent {\n @Input() question: any = {};\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n confirmPassword!: boolean;\n displayStrength!: boolean;\n viewButton!: boolean;\n maxLength!: number;\n minLength!: number;\n requireLowercaseLetters!: boolean;\n requireUppercaseLetters!: boolean;\n requireNumbers!: boolean;\n requireSpecialCharacters!: boolean;\n allowedSpecialCharacters: string[] = [];\n validationMessage: string = '';\n cnfrmValidationMessage: string = '';\n validationFailed: boolean = false;\n validatedCnfrmPassword: boolean = false;\n enteredPassword: string = '';\n enteredCnfrmPassword: string = '';\n passwordStrength: number = 0;\n questionId:string='';\n\n ngOnInit() {\n this.valueAssigned();\n }\n\n valueAssigned() {\n this.questionId=this.question.id;\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.confirmPassword = this.question.formElement.appearance.confirmPassword;\n this.displayStrength = this.question.formElement.appearance.displayStrong;\n this.viewButton = this.question.formElement.appearance.viewButton;\n this.maxLength = this.question.formElement.validation.maxLength;\n this.minLength = this.question.formElement.validation.minLength;\n this.requireLowercaseLetters =\n this.question.formElement.validation.requireLowercaseLetters;\n this.requireUppercaseLetters =\n this.question.formElement.validation.requireUppercaseLetters;\n this.requireNumbers = this.question.formElement.validation.requireNumbers;\n this.requireSpecialCharacters =\n this.question.formElement.validation.requireSpecialCharacters;\n if (this.requireSpecialCharacters) {\n this.allowedSpecialCharacters =\n this.question.formElement.validation.allowedSpecialCharacters\n .split(',')\n .map((char: any) => char.trim());\n }\n this.enteredPassword = this.question?.answer;\n }\n\n togglePasswordVisibility() {\n let passwordField = document.getElementById(\n 'passwordField'+this.questionId\n ) as HTMLInputElement;\n let eyeIcon = document.getElementById(\n 'passwordEyeIcon'+this.questionId\n ) as HTMLInputElement;\n\n if (passwordField.type === 'password') {\n passwordField.type = 'text';\n eyeIcon.classList.remove('bi-eye-fill');\n eyeIcon.classList.add('bi-eye-slash-fill');\n } else {\n passwordField.type = 'password';\n eyeIcon.classList.remove('bi-eye-slash-fill');\n eyeIcon.classList.add('bi-eye-fill');\n }\n }\n toggleCnfrmPasswordVisibility() {\n let passwordField = document.getElementById(\n 'cnfrmPasswordField'+this.questionId\n ) as HTMLInputElement;\n let eyeIcon = document.getElementById(\n 'CnfrmPasswordEyeIcon'+this.questionId\n ) as HTMLInputElement;\n\n if (passwordField.type === 'password') {\n passwordField.type = 'text';\n eyeIcon.classList.remove('bi-eye-fill');\n eyeIcon.classList.add('bi-eye-slash-fill');\n } else {\n passwordField.type = 'password';\n eyeIcon.classList.remove('bi-eye-slash-fill');\n eyeIcon.classList.add('bi-eye-fill');\n }\n }\n\n checkPasswordMatch() {\n this.validatedCnfrmPassword = false;\n this.cnfrmValidationMessage = '';\n if (this.required && this.confirmPassword && !this.enteredCnfrmPassword) {\n this.validatedCnfrmPassword = true;\n this.cnfrmValidationMessage = `Please enter a valid password`;\n this.question.validation = false;\n }\n else if (this.enteredPassword != this.enteredCnfrmPassword && this.confirmPassword) {\n this.validatedCnfrmPassword = true;\n this.cnfrmValidationMessage = 'Passwords do not match';\n this.question.validation = false;\n }\n else{\n this.question.validation = true;\n }\n this.validatePassword();\n }\n\n \n\n validatePassword() {\n this.validationFailed = false;\n this.validationMessage = '';\n if (this.required && !this.enteredPassword) {\n this.validationFailed = true;\n this.validationMessage = `Please enter a valid password`;\n this.question.validation = false;\n } else if (\n this.requireLowercaseLetters ||\n this.requireUppercaseLetters ||\n this.requireNumbers ||\n this.requireSpecialCharacters ||\n this.minLength ||\n this.maxLength\n ) { \n const lowercaseRegex = /[a-z]/;\n const uppercaseRegex = /[A-Z]/;\n const numberRegex = /\\d/;\n const specialCharacterRegex = new RegExp(`[${this.allowedSpecialCharacters.join('')}]`);\n const otherSpecialCharacterRegex = new RegExp(`[^a-zA-Z0-9${this.allowedSpecialCharacters.join('')}]`);\n \n let lowerCaseValidate = lowercaseRegex.test(this.enteredPassword);\n let upperCaseValidate = uppercaseRegex.test(this.enteredPassword);\n let containsNumber = numberRegex.test(this.enteredPassword);\n let containsSpecialCharacter = specialCharacterRegex.test(this.enteredPassword);\n let containsOtherSpecialCharacter = otherSpecialCharacterRegex.test(this.enteredPassword);\n \n if (!lowerCaseValidate && this.requireLowercaseLetters) {\n this.validationFailed = true;\n this.validationMessage = 'Password must contain at least one lowercase letter';\n this.question.validation = false;\n } else if (!upperCaseValidate && this.requireUppercaseLetters) {\n this.validationFailed = true;\n this.validationMessage = 'Password must contain at least one uppercase letter';\n this.question.validation = false;\n } else if (!containsNumber && this.requireNumbers) {\n this.validationFailed = true;\n this.validationMessage = 'Password must contain at least one number';\n this.question.validation = false;\n }else if (this.enteredPassword.length < this.minLength) {\n this.validationFailed = true;\n this.validationMessage = `Password must contain at least ${this.minLength} characters`;\n this.question.validation = false;\n } else if (this.enteredPassword.length > this.maxLength) {\n this.validationFailed = true;\n this.validationMessage = `Password must be less than ${this.maxLength} characters`;\n this.question.validation = false;\n } else if (!containsSpecialCharacter && this.allowedSpecialCharacters.length>0) {\n this.validationFailed = true;\n this.validationMessage = `Password must contain at least one special character from ${this.allowedSpecialCharacters}`;\n this.question.validation = false;\n } else if(containsOtherSpecialCharacter && this.allowedSpecialCharacters.length>0){\n this.validationFailed = true;\n this.validationMessage = 'Password contains an invalid special character';\n this.question.validation = false;\n } else if(this.confirmPassword){\n this.checkPasswordMatch();\n }\n else {\n this.question.validation = true;\n } \n } else { \n this.passwordStrength=this.calculateStrength(this.enteredPassword);\n this.question.validation = true;\n }\n this.passwordStrength = this.calculateStrength(this.enteredPassword)\n}\n\n validateInput(event:any){\n this.question.answer=event.target.value;\n this.validatePassword(); \n }\n\n validateCnfrm(event:any){\n this.checkPasswordMatch();\n }\n\n calculateStrength(password:any) {\n const lengthStrength = Math.min(100, (password.length / 12) * 100); // Assume maximum length of 12 for full points\n const lowercaseStrength = /[a-z]/.test(password) ? 20 : 0;\n const uppercaseStrength = /[A-Z]/.test(password) ? 20 : 0;\n const numberStrength = /\\d/.test(password) ? 20 : 0;\n const specialCharacterStrength = /[!@#$%^&*(),.?\":{}|<>]/.test(password) ? 20 : 0; // Adjust this regex based on your allowed special characters\n \n return lengthStrength + lowercaseStrength + uppercaseStrength + numberStrength + specialCharacterStrength;\n }\n}\n\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"password-input-wrapper mb-2\">\n <div class=\"input-wrapper\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label [for]=\"'passwordField'+questionId\">{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <input\n type=\"password\"\n class=\"form-control mb-2 height\"\n [id]=\"'passwordField'+questionId \"\n (blur)=\"validatePassword()\"\n [(ngModel)]=\"enteredPassword\"\n [class.invalid]=\"validationFailed\"\n (input)=\"validateInput($event)\"\n />\n <button\n id=\"togglePasswordBtn\"\n class=\"toggle-password-btn\"\n (click)=\"togglePasswordVisibility()\"\n *ngIf=\"viewButton\"\n >\n <i class=\"bi bi-eye-fill\" [id]=\"'passwordEyeIcon'+questionId\"></i>\n </button>\n </div>\n <div class=\"password-strength-meter\" *ngIf=\"displayStrength\">\n <div class=\"progress\">\n <div\n class=\"progress-bar\"\n role=\"progressbar\"\n [style.width]=\"passwordStrength + '%'\"\n [class.bg-danger]=\"passwordStrength < 30\"\n [class.bg-warning]=\"passwordStrength >= 30 && passwordStrength < 70\"\n [class.bg-success]=\"passwordStrength >= 70\"\n ></div>\n </div>\n </div>\n <div *ngIf=\"validationFailed\" class=\"text-danger mb-2\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n\n <div class=\"cnfrmPasswordWrapper\" *ngIf=\"confirmPassword\">\n <label for=\"'cnfrmPasswordField'+questionId\">Confirm password</label>\n <input\n type=\"password\"\n class=\"form-control mb-2 height\"\n [id]=\"'cnfrmPasswordField'+questionId\"\n (blur)=\"checkPasswordMatch()\"\n [(ngModel)]=\"enteredCnfrmPassword\"\n [class.invalid]=\"validatedCnfrmPassword\"\n (input)=\"validateCnfrm($event)\"\n />\n <button\n id=\"toggleCnfrmPasswordBtn\"\n class=\"toggle-password-btn\"\n (click)=\"toggleCnfrmPasswordVisibility()\"\n *ngIf=\"viewButton\"\n >\n <i class=\"bi bi-eye-fill\" [id]=\"'CnfrmPasswordEyeIcon'+questionId\"></i>\n </button>\n </div>\n <div *ngIf=\"validatedCnfrmPassword\" class=\"text-danger\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ cnfrmValidationMessage }}\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormService } from '../../services/form.service';\n\n@Component({\n selector: 'lib-radio-button-fields',\n templateUrl: './radio-button-fields.component.html',\n styleUrls: ['./radio-button-fields.component.scss'],\n})\nexport class RadioButtonFieldsComponent {\n @Input() question: any = {};\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n color: string = '';\n minimumSelection: number = 0;\n maximumSelection: number = 0;\n optionType: string = '';\n lookupTable: string = '';\n customOptions: any[] = [];\n database: any = {};\n api: any = {};\n apiOptions: any[] = [];\n selectedOption: any;\n validationFailed!: boolean;\n validationMessage: string = '';\n\n constructor(private formService: FormService) { }\n\n ngOnInit() {\n this.valueAssigned();\n }\n\n valueAssigned() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.color = this.question.formElement.appearance.color;\n this.optionType = this.question.formElement.option.optionType;\n\n switch (this.optionType) {\n case 'OPTION':\n this.customOptions = this.question.formElement.option.customOptions;\n this.initializeOption();\n break;\n case 'LOOKUP':\n this.lookupTable = this.question.formElement.option.lookupTable;\n this.fetchDataFromLookup();\n break;\n case 'DATABASE':\n this.database = this.question.formElement.option.database;\n this.fetchDataFromDatabase();\n break;\n case 'API':\n this.api = this.question.formElement.option.api;\n this.fetchDataFromAPI();\n break;\n default:\n console.warn('Unknown option type:', this.optionType);\n }\n\n if(this.question.childLogics && this.question.answer){\n this.updateChildLogics(this.question)\n }\n }\n\n initializeOption() {\n if (this.question.answer) {\n const dataType = typeof this.customOptions[0]?.value;\n let convertedAnswer;\n\n switch (dataType) {\n case 'number':\n convertedAnswer = Number(this.question.answer);\n break;\n case 'boolean':\n convertedAnswer = (this.question.answer === 'true');\n break;\n case 'string':\n convertedAnswer = String(this.question.answer);\n break;\n default:\n convertedAnswer = this.question.answer;\n }\n this.selectedOption = convertedAnswer;\n }\n }\n\n fetchDataFromLookup() {\n this.formService.fetchDataFromLookup(this.lookupTable).subscribe(\n (response) => {\n this.customOptions = response.result.values.map(\n (item: { value: string; label: string }) => ({\n value: item.value,\n label: item.label,\n })\n );\n this.initializeOption();\n },\n (error) => {\n console.error('HTTP Error:', error);\n }\n );\n }\n\n fetchDataFromDatabase() {\n const transformedDatabase = this.transformDatabaseObject(this.database);\n this.formService.fetchDataFromDatabase(transformedDatabase).subscribe(\n (response) => {\n if (response.success) {\n this.customOptions = response.result.map(\n (item: { value: string; label: string }) => ({\n value: item.value,\n label: item.label,\n })\n );\n this.initializeOption();\n } else {\n console.error('Error fetching data from database:', response.message);\n }\n },\n (error) => {\n console.error('HTTP Error:', error);\n }\n );\n }\n\n transformDatabaseObject(database: any) {\n return {\n tableName: database.tableName,\n valueField: database.valueField,\n labelField: database.labelField,\n criteria: database.criteria.map((criteria: any) => ({\n field: criteria.field,\n valueSource:criteria?.valueSource,\n condition: criteria.condition,\n value: criteria.inputValue,\n logicalOperator: criteria.logicalOperator,\n })),\n };\n }\n\n fetchDataFromAPI() {\n const apiConfig = this.api;\n this.formService.fetchDataFromExternalAPI(apiConfig.url).subscribe(\n (response) => {\n const data = this.extractDataByPath(response, apiConfig.pathToValue);\n this.customOptions = data.map((item: any) => ({\n value: item[apiConfig.valueField],\n label: item[apiConfig.labelField],\n }));\n this.initializeOption();\n },\n (error) => {\n console.error('HTTP Error:', error);\n }\n );\n }\n\n extractDataByPath(data: any, path: string) {\n return path.split('.').reduce((acc, part) => acc && acc[part], data);\n }\n\n validateInput() {\n this.question.answer = this.selectedOption;\n this.validationFailed = false;\n this.validationMessage = '';\n if (this.required && !this.selectedOption) {\n this.validationFailed = true;\n this.validationMessage = 'This is a required question';\n this.question.validation = false;\n }\n else {\n this.question.validation = true;\n }\n if (this.question.childLogics) {\n this.updateChildLogics(this.question);\n }\n }\n\n updateChildLogics(question: any) {\n if (question.childLogics && Array.isArray(question.childLogics)) {\n question.childLogics.forEach((childLogic: any) => {\n childLogic.showLogic = this.evaluateCondition(this.selectedOption, childLogic.condition, childLogic.inputValue);\n });\n }\n }\n\n evaluateCondition(answer: any, condition: string, inputValue: any): boolean {\n const stringInputValue = Array.isArray(inputValue) ? inputValue.map(val => val.toString()) : inputValue;\n\n switch (condition) {\n case \"!=\":\n return answer != stringInputValue;\n case \"=\":\n return answer == stringInputValue;\n case \"IN\":\n return stringInputValue.includes(answer);\n case \"NOT IN\":\n return !(stringInputValue.includes(answer))\n default:\n return false;\n }\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n\n <div class=\"checkboxField\" *ngFor=\"let option of customOptions\">\n <input\n class=\"formCheckbox mb-2\"\n type=\"radio\"\n [name]=\"question.id\"\n [id]=\"option.value\"\n [value]=\"option.value\"\n [style.accent-color]=\"color\"\n (blur)=\"validateInput()\"\n [(ngModel)]=\"selectedOption\"\n (ngModelChange)=\"validateInput()\"\n />\n <label\n class=\"formCheckLabel ms-2 me-2 mb-2\"\n [for]=\"option.value\"\n *ngIf=\"optionType == 'OPTION'\"\n >{{ option.value }}</label\n >\n <label\n class=\"formCheckLabel ms-2 me-2 mb-2\"\n [for]=\"option.value\"\n *ngIf=\"optionType == 'LOOKUP' || 'DATABASE' || 'API'\"\n >{{ option.label }}</label\n >\n </div>\n\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AngularEditorConfig } from '@kolkov/angular-editor';\n\n@Component({\n selector: 'lib-rich-text-editor-fields',\n templateUrl: './rich-text-editor-fields.component.html',\n styleUrls: ['./rich-text-editor-fields.component.scss'],\n})\nexport class RichTextEditorFieldsComponent {\n @Input() question: any = {};\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n numberOfRows!: number;\n limitedCharacters: boolean = false;\n counts: number = 0;\n htmlContent: string = '';\n characterCount!: number;\n validationFailed: boolean = false;\n validationMessage: string = '';\n\n config: AngularEditorConfig = {\n editable: true,\n spellcheck: true,\n height: '15rem',\n minHeight: '5rem',\n translate: 'no',\n defaultParagraphSeparator: 'p',\n defaultFontName: 'Arial',\n toolbarHiddenButtons: [['bold']],\n customClasses: [\n {\n name: 'quote',\n class: 'quote',\n },\n {\n name: 'redText',\n class: 'redText',\n },\n {\n name: 'titleText',\n class: 'titleText',\n tag: 'h1',\n },\n ],\n };\n\n ngOnInit() {\n this.valueAssigned(); \n }\n\n valueAssigned() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.numberOfRows = this.question.formElement.appearance.numberOfRows;\n this.limitedCharacters =\n this.question.formElement.validation.limitedCharacters;\n this.counts = this.question.formElement.validation.count;\n this.numberOfRows = this.question.formElement.appearance.numberOfRows;\n this.limitedCharacters =\n this.question.formElement.validation.limitedCharacters;\n if (this.limitedCharacters) {\n this.characterCount = this.question.formElement.validation.count;\n }\n this.htmlContent = this.question?.answer;\n }\n\n validateEditor() {\n this.validationFailed = false;\n this.validationMessage = '';\n if (!this.htmlContent && this.required) {\n this.validationFailed = true;\n this.validationMessage = 'This is a required question';\n }\n }\n\n validateInput(event: any) {\n if (this.htmlContent.length >= this.characterCount) {\n this.htmlContent = this.htmlContent.substring(0, this.characterCount);\n }\n this.question.answer = this.htmlContent; \n }\n\n updateAnswer(content: string) {\n this.question.answer = content;\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <angular-editor\n [(ngModel)]=\"htmlContent\"\n [config]=\"config\"\n (input)=\"validateInput($event)\"\n (blur)=\"validateEditor()\"\n (ngModelChange)=\"updateAnswer($event)\"\n ></angular-editor>\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-selection-matrix-fields',\n templateUrl: './selection-matrix-fields.component.html',\n styleUrls: ['./selection-matrix-fields.component.scss'],\n})\nexport class SelectionMatrixFieldsComponent {\n @Input() question: any = {};\n @Input() acceptedLanguage: string ='';\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n selectionMatrixColumn: string[] = [];\n selectionMatrixLabel: string[] = [];\n selectedOptions: string[] = [];\n validationFailed!:boolean;\n validationMessage:string='';\n minSelectionValue!:number;\n\n ngOnInit() {\n this.valueAssigned(); \n }\n\n valueAssigned() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.selectionMatrixColumn = this.question?.formElement?.selectionMatrixColumn;\n this.selectionMatrixLabel = this.question?.formElement?.selectionMatrixLabel;\n this.minSelectionValue= this.question?.formElement?.validation?.minSelectionValue;\n if(this.question.answer){\n this.selectedOptions=this.question.answer;\n }\n }\n\n onSelectionChange(rowIndex: number, value: string) {\n this.selectedOptions[rowIndex] = value;\n this.validateInput();\n }\n\n validateInput() {\n this.validationFailed = false;\n this.validationMessage = '';\n this.question.answer=this.selectedOptions;\n if(this.required && this.selectedOptions.length==0){\n this.validationFailed=true;\n this.validationMessage='This is a required question';\n this.question.validation = false;\n }\n else if(this.selectedOptions.length<this.minSelectionValue){\n this.validationFailed = true;\n this.validationMessage = `selected options must be greater than ${this.minSelectionValue}`;\n this.question.validation = false;\n }\n else{\n this.question.validation = true;\n } \n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n\n <div [ngClass]=\"{ 'labelBorder-rtl': acceptedLanguage === 'ara' }\">\n <table class=\"selectionMatrix\">\n <thead>\n <tr>\n <th></th>\n <th\n class=\"text-center table-cell-wrap\"\n *ngFor=\"let column of selectionMatrixColumn\"\n >\n {{ column }}\n </th>\n </tr>\n </thead>\n <tbody class=\"table-group-divider\">\n <tr *ngFor=\"let label of selectionMatrixLabel; let rowIndex = index\">\n <td class=\"table-cell-wrap\">{{ label }}</td>\n <td\n *ngFor=\"let column of selectionMatrixColumn; let colIndex = index\"\n class=\"text-center\"\n >\n <input\n type=\"radio\"\n id=\"radio-{{ rowIndex }}-{{ colIndex }}\"\n name=\"row-{{ rowIndex }}\"\n class=\"selectionRadio\"\n [value]=\"label + '_' + column\"\n [(ngModel)]=\"selectedOptions[rowIndex]\"\n (ngModelChange)=\"\n onSelectionChange(rowIndex, label + '_' + column)\n \"\n />\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-signature-fields',\n templateUrl: './signature-fields.component.html',\n styleUrls: ['./signature-fields.component.scss'],\n})\nexport class SignatureFieldsComponent {\n @Input() question: any = {};\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n maxFileSize: number = 0;\n minFileSize: number = 0;\n\n ngOnInit() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.maxFileSize = this.question.formElement.validation.maxFileSize;\n this.minFileSize = this.question.formElement.validation.minFileSize;\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\n <div class=\"input-wrapper\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n</div>\n","import { Component, Input, Renderer2, ElementRef, EventEmitter, Output } from '@angular/core';\n\n@Component({\n selector: 'lib-slider-fields',\n templateUrl: './slider-fields.component.html',\n styleUrls: ['./slider-fields.component.scss'],\n})\nexport class SliderFieldsComponent {\n @Input() question: any = {};\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n minValue: number = 0;\n maxValue: number = 0;\n stepValue: number = 0;\n changeSliderColor: boolean = false;\n sliderColor: string = '';\n validationFailed: boolean = false;\n validationMessage: string = '';\n\n selectedValue: number = 0;\n\n constructor(private renderer: Renderer2, private el: ElementRef) { }\n\n ngOnInit() {\n\n this.valueAssigned();\n }\n\n valueAssigned() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.minValue = this.question.formElement.appearance.minValue;\n this.maxValue = this.question.formElement.appearance.maxValue;\n this.stepValue = this.question.formElement.appearance.stepValue;\n this.changeSliderColor =\n this.question.formElement.appearance.changeSliderColor;\n\n if (this.changeSliderColor) {\n this.sliderColor = this.question.formElement.appearance.sliderColor;\n }\n\n if (this.question.answer && Object.keys(this.question.answer).length>0) {\n this.selectedValue = this.question?.answer;\n } else {\n this.selectedValue = this.minValue;\n }\n }\n\n\n validateInput(event: any) {\n this.question.answer = String(this.selectedValue);\n this.question.validation = true;\n }\n\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <div class=\"sliderRow\">\n <div class=\"sliderLeft\">\n <mat-slider\n [min]=\"minValue\"\n [max]=\"maxValue\"\n [step]=\"stepValue\"\n [ngStyle]=\"{\n '--mdc-slider-active-track-color': changeSliderColor\n ? sliderColor\n : ''\n }\"\n >\n <input\n matSliderThumb\n [(ngModel)]=\"selectedValue\"\n (input)=\"validateInput($event)\"\n />\n </mat-slider>\n </div>\n <div class=\"sliderRight\">\n <label class=\"selected-count font-weight-bold\">{{ selectedValue }}</label>\n </div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { FormService } from '../../services/form.service';\nimport { DataService } from '../../services/data.service';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n@Component({\n selector: 'lib-terms-and-condition-fields',\n templateUrl: './terms-and-condition-fields.component.html',\n styleUrls: ['./terms-and-condition-fields.component.scss'],\n})\nexport class TermsAndConditionFieldsComponent {\n @Input() question: any = {};\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n fileDataUrl:any;\n private apiUrl: string = '';\n imgUrl:any\n header: any = {};\n visible:boolean=false;\n constructor(\n private formService: FormService,\n private http: HttpClient, \n private dataService: DataService\n ) {\n this.dataService.apiUrl$.subscribe((data) => {\n this.apiUrl = data;\n });\n }\n ngOnInit() {\n console.log(\"question\",this.question.\n formElement)\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.fileDataUrl=this.question.formElement.termsAndConditionType.fileUrl\n this.question;\n this.count;\n }\n preview(): Observable<any> {\n const headers = new HttpHeaders({\n 'Content-Type': this.header.contentType,\n 'auth-user': this.header.authUser,\n });\n const body = {\n // Your request body content here\n };\n const options = {\n headers: headers,\n body: body,\n };\n const fileUrl =this.fileDataUrl;\n const encodedFileUrl = encodeURIComponent(fileUrl);\n const fullUrl = `?url=${encodedFileUrl}`;\n this.imgUrl= (this.apiUrl + `/api/cdn/preview${fullUrl}`);\n this.visible= true;\n console.log(\"img\",this.imgUrl)\n return this.http.get<any>(this.apiUrl + `/api/cdn/preview${fullUrl}`, options);\n }\n closeModal() {\n this.visible = false;\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\n <div class=\"input-wrapper\">\n <div [innerHTML]=\"question.questionNumber\" ></div>\n &nbsp;&nbsp; <label (click)=\"preview()\">{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <div class=\"modal1\" *ngIf=\"visible\">\n <div class=\"modal-content1\">\n <span class=\"close\" (click)=\"closeModal()\">&times;</span>\n <div class=\"imgContiner\">\n <img [src]=\"imgUrl\" alt=\"Image\">\n </div>\n </div>\n </div>\n</div>\n\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'lib-text-area-fields',\n templateUrl: './text-area-fields.component.html',\n styleUrls: ['./text-area-fields.component.scss'],\n})\nexport class TextAreaFieldsComponent {\n @Input() question: any = {};\n answer: string = '';\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n numberOfRows!: number;\n limitedCharacters!: boolean;\n characterCount!: number;\n validationFailed: boolean = false;\n validationMessage: string = '';\n enteredText: string = '';\n\n ngOnInit() {\n this.valueAssigned();\n }\n\n valueAssigned() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.numberOfRows = this.question.formElement.appearance.numberOfRows;\n this.limitedCharacters =\n this.question.formElement.validation.limitedCharacters;\n if (this.limitedCharacters) {\n this.characterCount = this.question.formElement.validation.count;\n }\n this.enteredText = this.question?.answer\n }\n validateInput(event: any) {\n this.question.answer = event.target.value;\n this.validateTextarea();\n }\n validateTextarea() {\n this.validationFailed = false;\n this.validationMessage = '';\n if (!this.enteredText && this.required) {\n this.validationFailed = true;\n this.validationMessage = 'This is a required question';\n this.question.validation = false;\n }\n else {\n this.question.validation = true;\n }\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <textarea\n class=\"form-control mb-2\"\n [rows]=\"numberOfRows\"\n (input)=\"validateInput($event)\"\n (blur)=\"validateTextarea()\"\n [(ngModel)]=\"enteredText\"\n [class.invalid]=\"validationFailed\"\n [maxlength]=\"characterCount\"\n ></textarea>\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Logic } from '../../models/logic.model';\n\n@Component({\n selector: 'lib-text-fields',\n templateUrl: './text-fields.component.html',\n styleUrls: ['./text-fields.component.scss'],\n})\nexport class TextFieldsComponent {\n @Input() question: any = {};\n answer: string = '';\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n placeholder: string = '';\n defaultValue: string = '';\n isBold!: boolean;\n isUnderline!: boolean;\n isItalics!: boolean;\n textAlign: string = '';\n font: string = '';\n fontSize: string = '';\n validationType: string = '';\n validation: string = '';\n regex: string = '';\n enteredText: string = '';\n validationFailed: boolean = false;\n validationMessage: string = '';\n\n ngOnInit() {\n this.valueAssigned();\n }\n\n valueAssigned() {\n this.count = this.question?.count;\n this.required = this.question?.required;\n this.hint = this.question?.hint;\n this.placeholder = this.question.formElement?.appearance?.placeholder || '';\n this.defaultValue = this.question.formElement.appearance?.defaultValue;\n this.isBold = this.question.formElement.appearance?.bold;\n this.isItalics = this.question.formElement.appearance?.italics;\n this.isUnderline = this.question.formElement.appearance?.underline;\n this.textAlign = this.question.formElement.appearance?.textAlign;\n this.font = this.question.formElement.appearance?.font;\n this.fontSize = this.question.formElement.appearance?.fontSize;\n this.validationType = this.question.formElement.validation?.validationType;\n if (this.validationType == 'CUSTOM_VALIDATION') {\n this.validation = this.question.formElement.validation?.validation;\n } else if (this.validationType == 'REGULAR_EXPRESSION') {\n this.regex = this.question.formElement.validation?.regex;\n }\n\n if (\n this.question.answer !== null &&\n this.question.answer !== undefined &&\n ((typeof this.question.answer === 'string' &&\n this.question.answer.trim() !== '') ||\n (Array.isArray(this.question.answer) &&\n this.question.answer.length > 0) ||\n (typeof this.question.answer === 'object' &&\n Object.keys(this.question.answer).length > 0))\n ) {\n this.enteredText = this.question.answer;\n }\n if(this.question.childLogics && this.question.answer){\n this.updateChildLogics(this.question)\n }\n }\n\n validatetextField() {\n this.validationFailed = false;\n this.validationMessage = '';\n if (this.required && !this.enteredText) {\n this.validationFailed = true;\n this.validationMessage = 'This is a required question';\n this.question.validation = false;\n } else {\n this.question.validation = true;\n }\n if (this.question.childLogics) {\n this.updateChildLogics(this.question);\n } \n }\n\n validateInput(event: any) {\n let value = event.target.value;\n if (this.validation == 'Numbers only') {\n event.target.value = value?.replace(/\\D/g, '');\n } else if (this.validation == 'Alphanumeric') {\n event.target.value = value?.replace(/[^a-zA-Z0-9]/g, '');\n } else if (this.validationType == 'REGULAR_EXPRESSION' && this.regex) {\n event.target.value = value?.replace(this.regex, '');\n }\n this.question.answer = event.target.value;\n this.validatetextField();\n }\n\n updateChildLogics(question: any) {\n if (question.childLogics && Array.isArray(question.childLogics)) {\n question.childLogics.forEach((childLogic: any) => {\n if(this.enteredText==''){\n childLogic.showLogic=false;\n this.clearAnswer(childLogic);\n }\n if (this.evaluateCondition(this.enteredText, childLogic.condition, childLogic.inputValue)) {\n childLogic.showLogic = true;\n }\n\n else{\n childLogic.showLogic = false;\n this.clearAnswer(childLogic);\n }\n });\n }\n }\n\n evaluateCondition(answer: any, condition: string, inputValue: any): boolean {\n const stringInputValue = inputValue;\n\n switch (condition) {\n case '!=':\n return answer != inputValue;\n case '=':\n return answer == inputValue;\n case 'LIKE':\n return answer.includes(inputValue);\n case 'NOT LIKE':\n return !answer.includes(inputValue);\n case 'BEGIN WITH':\n return answer.startsWith(inputValue);\n case 'END WITH':\n return answer.endsWith(inputValue);\n default:\n return false;\n }\n }\n\n clearAnswer(childLogic:Logic){\n childLogic.formElements.forEach((formElement:any)=>{\n if(formElement.entityType == 'QUESTION'){ \n formElement.element.answer = '';\n }\n })\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div> &nbsp;&nbsp;\n <label>{{ question.question }}</label>&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div class=\"svg-wrapper mb-2 hintIcon\" [attr.data-title]=\"hint\" *ngIf=\"hint\">\n <svg class=\"hintSvg\" viewBox=\"0 0 30 30\" xmlns=\"http://www.w3.org/2000/svg\">\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\"/>\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\"/>\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\"/>\n </svg>\n </div>\n </div>\n \n <input\n type=\"text\"\n class=\"form-control mb-2 height\"\n [placeholder]=\"placeholder\"\n [value]=\"defaultValue\"\n [(ngModel)]=\"enteredText\"\n (blur)=\"validatetextField()\"\n (input)=\"validateInput($event)\"\n [class.invalid]=\"validationFailed\"\n />\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\n <svg class=\"validationSvg\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\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\"/>\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\"/>\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\n </svg>\n {{validationMessage}}</div>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-toggle-switch-fields',\n templateUrl: './toggle-switch-fields.component.html',\n styleUrls: ['./toggle-switch-fields.component.scss'],\n})\nexport class ToggleSwitchFieldsComponent {\n @Input() question: any = {};\n @Input() acceptedLanguage: string ='';\n\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n labelOnValue: string = '';\n labelOffValue: string = '';\n labelOnColor: string = '';\n labelOffColor: string = '';\n toggleBackgroundColor: string = '';\n selectedValue : string ='';\n\n ngOnInit() {\n this.valueAssigned();\n }\n\n getDirectionClass(): string {\n return this.acceptedLanguage === 'ara' ? 'direction-rtl' : 'direction-ltr';\n }\n\n valueAssigned() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.labelOnValue = this.question.formElement.appearance.labelOnValue;\n this.labelOffValue = this.question.formElement.appearance.labelOffValue;\n this.labelOnColor = this.question.formElement.appearance.labelOnColor;\n this.labelOffColor = this.question.formElement.appearance.labelOffColor;\n this.toggleBackgroundColor = this.labelOnColor;\n if (!this.question.answer) {\n this.question.answer = this.labelOffValue;\n this.question.validation = true;\n }\n if (this.question.answer) {\n this.selectedValue = this.question.answer;\n this.question.validation = true;\n }\n }\n\n toggleSliderColor(event: any): void {\n let isChecked = event.target.checked;\n this.question.answer = isChecked ? this.labelOnValue : this.labelOffValue;\n this.question.validation = true;\n this.toggleBackgroundColor = isChecked\n ? this.question.formElement.appearance.labelOffColor\n : this.question.formElement.appearance.labelOnColor;\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-3 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <div class=\"mt-2\">\n <label class=\"switch\" [ngClass]=\"{'direction-rtl': acceptedLanguage === 'ara', 'direction-ltr': acceptedLanguage !== 'ara'}\">\n <input\n type=\"checkbox\"\n id=\"togBtn\"\n (change)=\"toggleSliderColor($event)\"\n [checked]=\"selectedValue == labelOnValue ? true : false\"\n />\n <div\n class=\"slider round\" [ngClass]=\"getDirectionClass()\"\n [ngStyle]=\"{ 'background-color': toggleBackgroundColor }\"\n >\n <span class=\"on action-btn-text\">{{ labelOffValue }}</span>\n <span class=\"off action-btn-text\">{{ labelOnValue }}</span>\n </div>\n </label>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'lib-url-fields',\n templateUrl: './url-fields.component.html',\n styleUrls: ['./url-fields.component.scss'],\n})\nexport class UrlFieldsComponent {\n @Input() question: any = {};\n count: number = 0;\n required: boolean = false;\n hint: string = '';\n placeholder: string = '';\n showPreviewButton!: boolean;\n enteredUrl: string = '';\n validationFailed: boolean = false;\n validationMessage: string = '';\n\n constructor() { }\n\n ngOnInit() {\n this.valueAssigned();\n }\n\n handleClick() {\n let textFieldValue = (document.getElementById('textField') as HTMLInputElement).value.trim();\n\n if (!/^https?:\\/\\//i.test(textFieldValue)) {\n textFieldValue = 'http://' + textFieldValue;\n }\n\n window.open(textFieldValue, '_blank');\n }\n\n valueAssigned() {\n this.count = this.question.count;\n this.required = this.question.required;\n this.hint = this.question.hint;\n this.placeholder = this.question.formElement.appearance.placeholder;\n this.showPreviewButton =\n this.question.formElement.appearance.showPreviewButton;\n this.enteredUrl = this.question?.answer; \n }\n validateUrl() {\n this.validationFailed = false;\n this.validationMessage = '';\n if (this.required && !this.enteredUrl) {\n this.validationFailed = true;\n this.validationMessage = 'This is a required question';\n this.question.validation = false;\n }\n else {\n this.question.validation = true;\n }\n }\n\n validateInput(event: any) {\n this.validateUrl();\n this.question.answer = event.target.value;\n }\n}\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n &nbsp;&nbsp; <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\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\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <div class=\"input-group\">\n <input\n id=\"textField\"\n type=\"text\"\n class=\"form-control col-11.5 rounded height\"\n [placeholder]=\"placeholder\"\n [(ngModel)]=\"enteredUrl\"\n (blur)=\"validateUrl()\"\n (input)=\"validateInput($event)\"\n [class.invalid]=\"validationFailed\"\n />\n <div class=\"ps-2 pe-2\">\n <button\n *ngIf=\"showPreviewButton\"\n type=\"button\"\n class=\"btn col-.5 custom-button rounded d-flex justify-content-center align-items-center height\"\n (click)=\"handleClick()\"\n >\n <svg\n width=\"30\"\n height=\"30\"\n viewBox=\"0 0 30 30\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"#084FFF\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M9.99766 2.49219L6.24609 6.24375\"\n stroke=\"#084FFF\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M9.99766 9.99766L6.24609 6.24609\"\n stroke=\"#084FFF\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M17.7924 14.8125L14.3035 18.3015L12.2051 16.2106\"\n stroke=\"#084FFF\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </button>\n </div>\n </div>\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\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\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\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\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-section-fields',\n templateUrl: './section-fields.component.html',\n styleUrls: ['./section-fields.component.scss']\n})\nexport class SectionFieldsComponent {\n @Input() section:any={};\n}\n","<div class=\"mb-4 px-3\">\n <p class=\"sectionTitle\">{{ section.title }}</p>\n <p [innerHTML]=\"section.description\" class=\"description\"></p>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-forth-child',\n templateUrl: './forth-child.component.html',\n styleUrls: ['./forth-child.component.scss']\n})\nexport class ForthChildComponent {\n @Input() childLogics: any = [];\n @Input() acceptedLanguage: string ='';\n}\n","<div *ngFor=\"let childLogic of childLogics\">\n <div *ngIf=\"childLogic.showLogic\">\n <div *ngFor=\"let formElement of childLogic.formElements\">\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\n <lib-check-box-fields\n *ngIf=\"formElement.element.formElement.elementType === 'CHECK_BOX'\"\n [question]=\"formElement.element\"\n ></lib-check-box-fields>\n <lib-date-time-fields\n *ngIf=\"formElement.element.formElement.elementType === 'DATE_TIME'\"\n [question]=\"formElement.element\"\n ></lib-date-time-fields>\n <lib-drop-down-fields\n *ngIf=\"formElement.element.formElement.elementType === 'DROP_DOWN'\"\n [question]=\"formElement.element\"\n ></lib-drop-down-fields>\n <lib-file-picker-fields\n *ngIf=\"formElement.element.formElement.elementType === 'FILE_PICKER'\"\n [question]=\"formElement.element\"\n ></lib-file-picker-fields>\n <lib-location-fields\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\n [question]=\"formElement.element\"\n ></lib-location-fields>\n \n <lib-mail-fields\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\n [question]=\"formElement.element\"\n >\n </lib-mail-fields>\n <lib-mobile-fields\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\n [question]=\"formElement.element\"\n >\n </lib-mobile-fields>\n <lib-number-fields\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\n [question]=\"formElement.element\"\n >\n </lib-number-fields>\n <lib-password-fields\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\n [question]=\"formElement.element\"\n >\n </lib-password-fields>\n <lib-radio-button-fields\n *ngIf=\"formElement.element.formElement.elementType === 'RADIO_BUTTON'\"\n [question]=\"formElement.element\"\n ></lib-radio-button-fields>\n <lib-rich-text-editor-fields\n *ngIf=\"formElement.element.formElement.elementType === 'RICH_TEXT_EDITOR'\"\n [question]=\"formElement.element\"\n ></lib-rich-text-editor-fields>\n <lib-selection-matrix-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SELECTION_MATRIX'\"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-selection-matrix-fields>\n <lib-signature-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SIGNATURE'\"\n [question]=\"formElement.element\"\n ></lib-signature-fields>\n <lib-slider-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\n [question]=\"formElement.element\"\n ></lib-slider-fields>\n <lib-terms-and-condition-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TERMS_AND_CONDITION'\"\n [question]=\"formElement.element\"\n ></lib-terms-and-condition-fields>\n <lib-text-area-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_AREA'\"\n [question]=\"formElement.element\"\n ></lib-text-area-fields>\n <lib-text-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\n [question]=\"formElement.element\"\n ></lib-text-fields>\n <lib-toggle-switch-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-toggle-switch-fields>\n <lib-url-fields\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\n [question]=\"formElement.element\"\n ></lib-url-fields>\n </div>\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\n <lib-section-fields [section]=\"formElement.element\"></lib-section-fields>\n </div>\n <div *ngIf=\"formElement.entityType === 'SUBFORM'\">\n <!-- <lib-sub-form [subForm]=\"formElement.element\"></lib-sub-form> -->\n </div>\n </div>\n </div>\n </div>\n \n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-third-child',\n templateUrl: './third-child.component.html',\n styleUrls: ['./third-child.component.scss']\n})\nexport class ThirdChildComponent {\n @Input() childLogics: any = [];\n @Input() acceptedLanguage: string ='';\n\n\n}\n","<div *ngFor=\"let childLogic of childLogics\">\n <div *ngIf=\"childLogic.showLogic\">\n <div *ngFor=\"let formElement of childLogic.formElements\">\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\n <lib-check-box-fields\n *ngIf=\"formElement.element.formElement.elementType === 'CHECK_BOX'\"\n [question]=\"formElement.element\"\n ></lib-check-box-fields>\n <lib-date-time-fields\n *ngIf=\"formElement.element.formElement.elementType === 'DATE_TIME'\"\n [question]=\"formElement.element\"\n ></lib-date-time-fields>\n <lib-drop-down-fields\n *ngIf=\"formElement.element.formElement.elementType === 'DROP_DOWN'\"\n [question]=\"formElement.element\"\n ></lib-drop-down-fields>\n <lib-file-picker-fields\n *ngIf=\"formElement.element.formElement.elementType === 'FILE_PICKER'\"\n [question]=\"formElement.element\"\n ></lib-file-picker-fields>\n <lib-location-fields\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\n [question]=\"formElement.element\"\n ></lib-location-fields>\n \n <lib-mail-fields\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\n [question]=\"formElement.element\"\n >\n </lib-mail-fields>\n <lib-mobile-fields\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\n [question]=\"formElement.element\"\n >\n </lib-mobile-fields>\n <lib-number-fields\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\n [question]=\"formElement.element\"\n >\n </lib-number-fields>\n <lib-password-fields\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\n [question]=\"formElement.element\"\n >\n </lib-password-fields>\n <lib-radio-button-fields\n *ngIf=\"formElement.element.formElement.elementType === 'RADIO_BUTTON'\"\n [question]=\"formElement.element\"\n ></lib-radio-button-fields>\n <lib-rich-text-editor-fields\n *ngIf=\"formElement.element.formElement.elementType === 'RICH_TEXT_EDITOR'\"\n [question]=\"formElement.element\"\n ></lib-rich-text-editor-fields>\n <lib-selection-matrix-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SELECTION_MATRIX'\"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-selection-matrix-fields>\n <lib-signature-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SIGNATURE'\"\n [question]=\"formElement.element\"\n ></lib-signature-fields>\n <lib-slider-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\n [question]=\"formElement.element\"\n ></lib-slider-fields>\n <lib-terms-and-condition-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TERMS_AND_CONDITION'\"\n [question]=\"formElement.element\"\n ></lib-terms-and-condition-fields>\n <lib-text-area-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_AREA'\"\n [question]=\"formElement.element\"\n ></lib-text-area-fields>\n <lib-text-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\n [question]=\"formElement.element\"\n ></lib-text-fields>\n <lib-toggle-switch-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-toggle-switch-fields>\n <lib-url-fields\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\n [question]=\"formElement.element\"\n ></lib-url-fields>\n <lib-forth-child *ngIf=\"formElement.element.childLogics\"\n [childLogics]=\"formElement.element.childLogics\"\n [acceptedLanguage] = \"acceptedLanguage\"></lib-forth-child>\n </div>\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\n <lib-section-fields [section]=\"formElement.element\"></lib-section-fields>\n </div>\n <div *ngIf=\"formElement.entityType === 'SUBFORM'\">\n <!-- <lib-sub-form [subForm]=\"formElement.element\"></lib-sub-form> -->\n </div>\n </div>\n </div>\n </div>\n \n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-second-child',\n templateUrl: './second-child.component.html',\n styleUrls: ['./second-child.component.scss']\n})\nexport class SecondChildComponent {\n @Input() childLogics: any = [];\n @Input() acceptedLanguage: string ='';\n\n}\n","<div *ngFor=\"let childLogic of childLogics\">\n <div *ngIf=\"childLogic.showLogic\">\n <div *ngFor=\"let formElement of childLogic.formElements\">\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\n <lib-check-box-fields\n *ngIf=\"formElement.element.formElement.elementType === 'CHECK_BOX'\"\n [question]=\"formElement.element\"\n ></lib-check-box-fields>\n <lib-date-time-fields\n *ngIf=\"formElement.element.formElement.elementType === 'DATE_TIME'\"\n [question]=\"formElement.element\"\n ></lib-date-time-fields>\n <lib-drop-down-fields\n *ngIf=\"formElement.element.formElement.elementType === 'DROP_DOWN'\"\n [question]=\"formElement.element\"\n ></lib-drop-down-fields>\n <lib-file-picker-fields\n *ngIf=\"formElement.element.formElement.elementType === 'FILE_PICKER'\"\n [question]=\"formElement.element\"\n ></lib-file-picker-fields>\n <lib-location-fields\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\n [question]=\"formElement.element\"\n ></lib-location-fields>\n \n <lib-mail-fields\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\n [question]=\"formElement.element\"\n >\n </lib-mail-fields>\n <lib-mobile-fields\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\n [question]=\"formElement.element\"\n >\n </lib-mobile-fields>\n <lib-number-fields\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\n [question]=\"formElement.element\"\n >\n </lib-number-fields>\n <lib-password-fields\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\n [question]=\"formElement.element\"\n >\n </lib-password-fields>\n <lib-radio-button-fields\n *ngIf=\"formElement.element.formElement.elementType === 'RADIO_BUTTON'\"\n [question]=\"formElement.element\"\n ></lib-radio-button-fields>\n <lib-rich-text-editor-fields\n *ngIf=\"formElement.element.formElement.elementType === 'RICH_TEXT_EDITOR'\"\n [question]=\"formElement.element\"\n ></lib-rich-text-editor-fields>\n <lib-selection-matrix-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SELECTION_MATRIX'\"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-selection-matrix-fields>\n <lib-signature-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SIGNATURE'\"\n [question]=\"formElement.element\"\n ></lib-signature-fields>\n <lib-slider-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\n [question]=\"formElement.element\"\n ></lib-slider-fields>\n <lib-terms-and-condition-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TERMS_AND_CONDITION'\"\n [question]=\"formElement.element\"\n ></lib-terms-and-condition-fields>\n <lib-text-area-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_AREA'\"\n [question]=\"formElement.element\"\n ></lib-text-area-fields>\n <lib-text-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\n [question]=\"formElement.element\"\n ></lib-text-fields>\n <lib-toggle-switch-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-toggle-switch-fields>\n <lib-url-fields\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\n [question]=\"formElement.element\"\n ></lib-url-fields>\n <lib-third-child *ngIf=\"formElement.element.childLogics\"\n [childLogics]=\"formElement.element.childLogics\"\n [acceptedLanguage] = \"acceptedLanguage\"></lib-third-child>\n </div>\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\n <lib-section-fields [section]=\"formElement.element\"></lib-section-fields>\n </div>\n <div *ngIf=\"formElement.entityType === 'SUBFORM'\">\n <!-- <lib-sub-form [subForm]=\"formElement.element\"></lib-sub-form> -->\n </div>\n </div>\n </div>\n </div>\n \n\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-first-child',\n templateUrl: './first-child.component.html',\n styleUrls: ['./first-child.component.scss']\n})\nexport class FirstChildComponent {\n @Input() childLogics: any = [];\n @Input() acceptedLanguage: string ='';\n\n ngOnInit() {\n }\n}\n","<div *ngFor=\"let childLogic of childLogics\">\n <div *ngIf=\"childLogic.showLogic\">\n <div *ngFor=\"let formElement of childLogic.formElements\">\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\n <lib-check-box-fields\n *ngIf=\"formElement.element.formElement.elementType === 'CHECK_BOX'\"\n [question]=\"formElement.element\"\n ></lib-check-box-fields>\n <lib-date-time-fields\n *ngIf=\"formElement.element.formElement.elementType === 'DATE_TIME'\"\n [question]=\"formElement.element\"\n ></lib-date-time-fields>\n <lib-drop-down-fields\n *ngIf=\"formElement.element.formElement.elementType === 'DROP_DOWN'\"\n [question]=\"formElement.element\"\n ></lib-drop-down-fields>\n <lib-file-picker-fields\n *ngIf=\"formElement.element.formElement.elementType === 'FILE_PICKER'\"\n [question]=\"formElement.element\"\n ></lib-file-picker-fields>\n <lib-location-fields\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\n [question]=\"formElement.element\"\n ></lib-location-fields>\n \n <lib-mail-fields\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\n [question]=\"formElement.element\"\n >\n </lib-mail-fields>\n <lib-mobile-fields\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\n [question]=\"formElement.element\"\n >\n </lib-mobile-fields>\n <lib-number-fields\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\n [question]=\"formElement.element\"\n >\n </lib-number-fields>\n <lib-password-fields\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\n [question]=\"formElement.element\"\n >\n </lib-password-fields>\n <lib-radio-button-fields\n *ngIf=\"formElement.element.formElement.elementType === 'RADIO_BUTTON'\"\n [question]=\"formElement.element\"\n ></lib-radio-button-fields>\n <lib-rich-text-editor-fields\n *ngIf=\"formElement.element.formElement.elementType === 'RICH_TEXT_EDITOR'\"\n [question]=\"formElement.element\"\n ></lib-rich-text-editor-fields>\n <lib-selection-matrix-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SELECTION_MATRIX'\"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-selection-matrix-fields>\n <lib-signature-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SIGNATURE'\"\n [question]=\"formElement.element\"\n ></lib-signature-fields>\n <lib-slider-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\n [question]=\"formElement.element\"\n ></lib-slider-fields>\n <lib-terms-and-condition-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TERMS_AND_CONDITION'\"\n [question]=\"formElement.element\"\n ></lib-terms-and-condition-fields>\n <lib-text-area-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_AREA'\"\n [question]=\"formElement.element\"\n ></lib-text-area-fields>\n <lib-text-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\n [question]=\"formElement.element\"\n ></lib-text-fields>\n <lib-toggle-switch-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-toggle-switch-fields>\n <lib-url-fields\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\n [question]=\"formElement.element\"\n ></lib-url-fields>\n <lib-second-child *ngIf=\"formElement.element.childLogics\"\n [childLogics]=\"formElement.element.childLogics\"\n [acceptedLanguage] = \"acceptedLanguage\"></lib-second-child>\n </div>\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\n <lib-section-fields [section]=\"formElement.element\"></lib-section-fields>\n </div>\n <div *ngIf=\"formElement.entityType === 'SUBFORM'\">\n <!-- <lib-sub-form [subForm]=\"formElement.element\"></lib-sub-form> -->\n </div>\n </div>\n </div>\n \n </div>\n \n","import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\n\n\n@Component({\n selector: 'lib-question',\n templateUrl: './question.component.html',\n styleUrls: ['./question.component.scss']\n})\nexport class QuestionComponent {\n @Input() question: any = {};\n @Input() edit : boolean = false;\n @Input() acceptedLanguage: string ='';\n\n constructor(private cdr: ChangeDetectorRef) { }\n\n validations: any = [];\n @Input() currentPageIndex: number = 0;\n @Output() emitValidations = new EventEmitter<any>();\n handleValidation(validation: any) {\n this.validations.push(validation);\n this.emitValidations.emit(this.validations);\n this.cdr.detectChanges();\n }\n}\n","<div>\n <lib-check-box-fields\n *ngIf=\"question.formElement.elementType === 'CHECK_BOX'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\"></lib-check-box-fields>\n <lib-date-time-fields\n *ngIf=\"question.formElement.elementType === 'DATE_TIME'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\"></lib-date-time-fields>\n <lib-drop-down-fields\n *ngIf=\"question.formElement.elementType === 'DROP_DOWN'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\"></lib-drop-down-fields>\n <lib-file-picker-fields\n *ngIf=\"question.formElement.elementType === 'FILE_PICKER'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\"></lib-file-picker-fields>\n <lib-location-fields\n *ngIf=\"question.formElement.elementType === 'LOCATION'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\"></lib-location-fields>\n\n <lib-mail-fields\n *ngIf=\"question.formElement.elementType === 'EMAIL'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\">\n </lib-mail-fields>\n <lib-mobile-fields\n *ngIf=\"question.formElement.elementType === 'MOBILE'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\">\n </lib-mobile-fields>\n <lib-number-fields\n *ngIf=\"question.formElement.elementType === 'NUMBER'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\">\n </lib-number-fields>\n <lib-password-fields\n *ngIf=\"question.formElement.elementType === 'PASSWORD'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\">\n </lib-password-fields>\n <lib-radio-button-fields\n *ngIf=\"question.formElement.elementType === 'RADIO_BUTTON'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\"></lib-radio-button-fields>\n <lib-rich-text-editor-fields\n *ngIf=\"question.formElement.elementType === 'RICH_TEXT_EDITOR'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\"></lib-rich-text-editor-fields>\n <lib-selection-matrix-fields\n *ngIf=\"question.formElement.elementType === 'SELECTION_MATRIX'\"\n [question]=\"question\"\n [acceptedLanguage] = \"acceptedLanguage\"\n (validate)=\"handleValidation($event)\"></lib-selection-matrix-fields>\n <lib-signature-fields\n *ngIf=\"question.formElement.elementType === 'SIGNATURE'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\"></lib-signature-fields>\n <lib-slider-fields\n *ngIf=\"question.formElement.elementType === 'SLIDER'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\"></lib-slider-fields>\n <lib-terms-and-condition-fields\n *ngIf=\"question.formElement.elementType === 'TERMS_AND_CONDITION'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\"></lib-terms-and-condition-fields>\n <lib-text-area-fields\n *ngIf=\"question.formElement.elementType === 'TEXT_AREA'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\"></lib-text-area-fields>\n <lib-text-fields\n *ngIf=\"question.formElement.elementType === 'TEXT_BOX'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\"></lib-text-fields>\n <lib-toggle-switch-fields\n *ngIf=\"question.formElement.elementType === 'TOGGLE_SWITCH'\"\n [question]=\"question\"\n [acceptedLanguage] = \"acceptedLanguage\"\n (validate)=\"handleValidation($event)\"></lib-toggle-switch-fields>\n <lib-url-fields\n *ngIf=\"question.formElement.elementType === 'URL'\"\n [question]=\"question\"\n (validate)=\"handleValidation($event)\"></lib-url-fields>\n <lib-first-child *ngIf=\"question.childLogics\"\n [childLogics]=\"question.childLogics\"\n [acceptedLanguage] = \"acceptedLanguage\">\n </lib-first-child>\n</div>\n","import { Component, Inject, Input } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'lib-submission-modal',\n templateUrl: './submission-modal.component.html',\n styleUrls: ['./submission-modal.component.scss']\n})\nexport class SubmissionModalComponent {\n acceptedLanguage: string ='';\n\n subForm:any;\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: any,\n private dialogRef: MatDialogRef<SubmissionModalComponent>\n ) { }\n\n ngOnInit(){\n this.subForm = this.data.subForm;\n this.acceptedLanguage = this.data.acceptedLanguage;\n }\n\n closeModal() {\n this.clearModal();\n this.dialogRef.close();\n }\n\n saveSubmission(){\n this.dialogRef.close(this.subForm);\n }\n\n clearModal() {\n if (this.subForm && this.subForm.formElements) {\n this.subForm.formElements.forEach((formElement: any) => {\n this.clearFormElement(formElement);\n });\n }\n }\n\n clearFormElement(formElement: any) {\n if (formElement.entityType === 'QUESTION') {\n formElement.element.answer = ''; \n\n // Additional properties to clear if needed\n if (formElement.element.formElement) {\n if (formElement.element.formElement.elementType === 'FILE_PICKER') {\n formElement.element.answer = null; // or [] depending on how you store files\n } else {\n formElement.element.answer = '';\n }\n }\n\n if (formElement.element.childLogics) {\n formElement.element.childLogics.forEach((childLogic: any) => {\n childLogic.showLogic=false;\n childLogic.formElements.forEach((formElement:any)=>{\n this.clearFormElement(formElement);\n\n })\n });\n }\n } \n }\n}\n","<div class=\"mb-5\">\n <div class=\"modalHeader mb-4\">\n <div class=\"title-div\">\n <p class=\"title\">{{subForm.title}}</p>\n </div>\n <div class=\"header-btn\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" (click)=\"closeModal()\">\n <path d=\"M8 8L16 16\" stroke=\"#1D252D\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M16 8L8 16\" stroke=\"#1D252D\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg> \n </div>\n </div>\n\n <div class=\"px-3\" *ngFor=\"let formElement of subForm.formElements\">\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\n <lib-check-box-fields\n *ngIf=\"formElement.element.formElement.elementType === 'CHECK_BOX'\"\n [question]=\"formElement.element\"\n ></lib-check-box-fields>\n <lib-date-time-fields\n *ngIf=\"formElement.element.formElement.elementType === 'DATE_TIME'\"\n [question]=\"formElement.element\"\n ></lib-date-time-fields>\n <lib-drop-down-fields\n *ngIf=\"formElement.element.formElement.elementType === 'DROP_DOWN'\"\n [question]=\"formElement.element\"\n ></lib-drop-down-fields>\n <lib-file-picker-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'FILE_PICKER'\n \"\n [question]=\"formElement.element\"\n ></lib-file-picker-fields>\n <lib-location-fields\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\n [question]=\"formElement.element\"\n ></lib-location-fields>\n\n <lib-mail-fields\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\n [question]=\"formElement.element\"\n >\n </lib-mail-fields>\n <lib-mobile-fields\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\n [question]=\"formElement.element\"\n >\n </lib-mobile-fields>\n <lib-number-fields\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\n [question]=\"formElement.element\"\n >\n </lib-number-fields>\n <lib-password-fields\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\n [question]=\"formElement.element\"\n >\n </lib-password-fields>\n <lib-radio-button-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'RADIO_BUTTON'\n \"\n [question]=\"formElement.element\"\n ></lib-radio-button-fields>\n <lib-rich-text-editor-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'RICH_TEXT_EDITOR'\n \"\n [question]=\"formElement.element\"\n ></lib-rich-text-editor-fields>\n <lib-selection-matrix-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'SELECTION_MATRIX'\n \"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-selection-matrix-fields>\n <lib-signature-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SIGNATURE'\"\n [question]=\"formElement.element\"\n ></lib-signature-fields>\n <lib-slider-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\n [question]=\"formElement.element\"\n ></lib-slider-fields>\n <lib-terms-and-condition-fields\n *ngIf=\"\n formElement.element.formElement.elementType ===\n 'TERMS_AND_CONDITION'\n \"\n [question]=\"formElement.element\"\n ></lib-terms-and-condition-fields>\n <lib-text-area-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_AREA'\"\n [question]=\"formElement.element\"\n ></lib-text-area-fields>\n <lib-text-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\n [question]=\"formElement.element\"\n ></lib-text-fields>\n <lib-toggle-switch-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\n \"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-toggle-switch-fields>\n <lib-url-fields\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\n [question]=\"formElement.element\"\n ></lib-url-fields>\n <lib-first-child\n *ngIf=\"formElement.element.childLogics\"\n [childLogics]=\"formElement.element.childLogics\"\n ></lib-first-child>\n </div>\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\n <lib-section-fields\n [section]=\"formElement.element\"\n ></lib-section-fields>\n </div>\n </div>\n\n <div class=\"okBtn me-4 ms-4\">\n <button\n class=\"submitBtn ms-md-3 me-md-2 rounded-pill\"\n type=\"button\"\n (click)=\"saveSubmission()\">\n Ok\n </button>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { SubmissionModalComponent } from '../submission-modal/submission-modal.component';\nimport { Attachment } from '../../models/attachment.model';\n\ninterface Answer {\n questionId: string;\n answer?: any;\n answerId?: string;\n deleteFiles?: string[];\n attachments?: Attachment[];\n files?: any;\n isChild?: boolean;\n}\n\ninterface Submission {\n submissionId: string;\n answers: Answer[];\n}\n\n@Component({\n selector: 'lib-multiple-subform',\n templateUrl: './multiple-subform.component.html',\n styleUrls: ['./multiple-subform.component.scss'],\n})\nexport class MultipleSubformComponent {\n @Input() subForm: any = {};\n @Output() subFormChange = new EventEmitter<any>();\n @Input() acceptedLanguage: string ='';\n\n submissions: Submission[] = [];\n deletedSubmissions: string[] = [];\n displayedColumns: string[] = [];\n\n constructor(public dialog: MatDialog) {}\n\n ngOnInit() {\n if (this.subForm?.submissions) {\n this.submissions = this.subForm.submissions;\n this.subForm.deletedSubmissions = [];\n }\n this.initializeDisplayedColumns();\n }\n\n initializeDisplayedColumns() {\n this.displayedColumns = this.subForm.formElements.map((fe: any) => fe.element.question);\n this.displayedColumns.push('actions');\n }\n\n getAnswerByQuestionId(submission: Submission, questionId: string) {\n return submission.answers.find(answer => answer.questionId === questionId);\n }\n\n subFormSubmission(subForm: any) {\n const processFormElements = (formElements: any[], isChild: boolean = false): Answer[] => {\n const answers: Answer[] = [];\n \n formElements.forEach((formElement: any) => {\n const answer: Answer = {\n questionId: formElement.element.id,\n answer: formElement.element?.answer || '',\n files: formElement.element.formElement.elementType == 'FILE_PICKER' && formElement.element.answer\n ? formElement.element.answer\n : undefined,\n isChild: isChild\n };\n \n if (\n formElement.element.formElement.elementType == 'FILE_PICKER' &&\n formElement.element.answer\n ) {\n const fileNames = formElement.element.answer.map(\n (file: any) => file?._file.name\n );\n answer.answer = fileNames;\n }\n answers.push(answer);\n \n if (formElement.element.childLogics) {\n formElement.element.childLogics.forEach((logic: any) => {\n if(logic.showLogic){\n answers.push(...processFormElements(logic.formElements, true));\n logic.showLogic=false;\n }\n });\n }\n\n formElement.element.answer = '';\n });\n return answers;\n };\n \n const answers = processFormElements(subForm.formElements);\n \n if (answers.length > 0) {\n const submission: Submission = {\n submissionId: '',\n answers: answers,\n };\n this.submissions.push(submission);\n this.submissions = [...this.submissions];\n this.updateSubFormWithSubmissions();\n }\n }\n \n\n editSubFormSubmission(index: number, submission: Submission) {\n const subForm = this.bindAnswers(this.subForm, submission);\n const dialogConfig = new MatDialogConfig();\n dialogConfig.position = { top: '5%' };\n dialogConfig.width = '100%';\n dialogConfig.data = {\n subForm: subForm,\n acceptedLanguage: this.acceptedLanguage\n };\n dialogConfig.hasBackdrop = true;\n dialogConfig.disableClose = true;\n dialogConfig.maxHeight = '80vh';\n const dialogRef = this.dialog.open(SubmissionModalComponent, dialogConfig);\n\n dialogRef.afterClosed().subscribe((result: any) => {\n if (result) {\n this.updateSubmission(result, index);\n }\n });\n }\n\n bindAnswers(subForm: any, submission: Submission): any {\n const bindElementAnswers = (formElements: any[], answers: Answer[]) => {\n formElements.forEach((formElement: any) => {\n const answer = answers.find(\n (a) => a.questionId === formElement.element.id\n );\n if (answer) {\n formElement.element.answer =\n formElement.element.formElement.elementType == 'FILE_PICKER'\n ? answer?.files\n : answer.answer;\n formElement.element.answerId = answer.answerId;\n formElement.element.attachments = answer.attachments;\n }\n if (formElement.element.childLogics) {\n formElement.element.childLogics.forEach((logic: any) => {\n bindElementAnswers(logic.formElements, answers);\n });\n }\n });\n };\n\n const updatedSubForm = { ...subForm };\n bindElementAnswers(updatedSubForm.formElements, submission.answers);\n return updatedSubForm;\n }\n\n deleteSubForm(index: number) {\n const submission = this.submissions[index];\n if (submission.submissionId) {\n this.deletedSubmissions.push(submission.submissionId);\n }\n this.submissions.splice(index, 1);\n this.submissions = [...this.submissions];\n this.updateSubFormWithSubmissions();\n }\n\n addNewSubmission() {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.position = { top: '5%' };\n dialogConfig.width = '100%';\n dialogConfig.data = {\n subForm: this.subForm,\n acceptedLanguage: this.acceptedLanguage\n };\n dialogConfig.hasBackdrop = true;\n dialogConfig.disableClose = true;\n dialogConfig.maxHeight = '80vh';\n const dialogRef = this.dialog.open(SubmissionModalComponent, dialogConfig);\n \n dialogRef.afterClosed().subscribe((result: any) => {\n if (result) {\n const hasData = result.formElements.some((formElement: any) => {\n return formElement.element.answer && formElement.element.answer.length > 0;\n });\n \n if (hasData) {\n this.subForm = result;\n this.subFormSubmission(result);\n }\n }\n });\n }\n \n\n updateSubmission(result: any, index: number) {\n const processFormElements = (formElements: any[], answers: Answer[]) => {\n formElements.forEach((formElement: any) => {\n let answer: Answer = {\n questionId: formElement.element.id,\n answerId: formElement.element?.answerId || '',\n attachments: formElement.element.attachments || [],\n answer: [],\n files: [],\n deleteFiles: [],\n };\n \n if (answer.attachments) {\n answer.answer = answer.attachments.map(\n (attachment: Attachment) => attachment.fileName\n );\n }\n \n if (formElement.element.formElement.elementType === 'FILE_PICKER') {\n if (formElement.element?.deleteFiles) {\n answer.answer = [];\n formElement.element.deleteFiles.forEach((deletedId: string) => {\n answer.deleteFiles?.push(deletedId);\n if (answer.attachments) {\n answer.attachments = answer.attachments.filter(\n (attachment: Attachment) => {\n const fileName = attachment.fileName;\n if (attachment.fileId !== deletedId) {\n if (!answer.answer.includes(fileName)) {\n answer.answer.push(fileName);\n return true;\n }\n }\n return false;\n }\n );\n }\n });\n }\n if (formElement.element.answer) {\n answer.files = formElement.element.answer;\n formElement.element.answer.forEach((file: any) => {\n const fileName = file._file?.name;\n let fileNamesArray = Array.isArray(answer.answer)\n ? answer.answer\n : [];\n if (!fileNamesArray.includes(fileName)) {\n fileNamesArray.push(fileName);\n }\n answer.answer = fileNamesArray;\n });\n }\n } else {\n answer = {\n questionId: formElement.element.id,\n answerId: formElement.element?.answerId || '',\n attachments: formElement.element.attachments,\n answer: formElement.element.answer,\n };\n }\n formElement.element.answer = '';\n answers.push(answer);\n \n if (formElement.element.childLogics) {\n formElement.element.childLogics.forEach((logic: any) => {\n if(logic.showLogic){\n processFormElements(logic.formElements, answers);\n }\n });\n }\n });\n };\n \n this.submissions[index].answers = [];\n processFormElements(result.formElements, this.submissions[index].answers);\n this.submissions = [...this.submissions];\n this.updateSubFormWithSubmissions();\n this.clearEmptyRows();\n } \n\n updateSubFormWithSubmissions() {\n this.subForm.submissions = this.submissions;\n this.subForm.deletedSubmissions = this.deletedSubmissions;\n this.subFormChange.emit(this.subForm);\n }\n\n clearEmptyRows() {\n const nonEmptySubmissions:Submission[] = [];\n const emptySubmissionIds:string[] = [];\n \n this.submissions.forEach(submission => {\n if (submission.answers.some(answer => answer.answer !== '')) {\n nonEmptySubmissions.push(submission);\n } else if (submission.submissionId) {\n emptySubmissionIds.push(submission.submissionId);\n }\n });\n \n this.submissions = nonEmptySubmissions;\n this.deletedSubmissions.push(...emptySubmissionIds);\n this.updateSubFormWithSubmissions();\n }\n \n}\n","<div class=\"example-container \" tabindex=\"0\">\n <div class=\"table-container\">\n <table mat-table [dataSource]=\"submissions\" class=\"mat-elevation-z8\">\n <ng-container *ngFor=\"let formElement of subForm.formElements\" [matColumnDef]=\"formElement.element.question\">\n <th mat-header-cell *matHeaderCellDef class=\"border border-1\">{{ formElement.element.question }}</th>\n <td mat-cell *matCellDef=\"let submission\" class=\"border border-1\" [ngClass]=\"{'hidden': getAnswerByQuestionId(submission, formElement.element.id)?.isChild}\">\n {{ getAnswerByQuestionId(submission, formElement.element.id)?.answer }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\" stickyEnd>\n <th mat-header-cell *matHeaderCellDef class=\"border border-1\"> Actions </th>\n <td mat-cell *matCellDef=\"let submission; let i = index\" class=\"text-center border border-1\">\n\n <div>\n <button class=\"btn\" mat-icon-button [matMenuTriggerFor]=\"menu\" aria-label=\"Example icon-button with a menu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"editSubFormSubmission(i, submission)\">\n <svg width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"0.5\" y=\"0.5\" width=\"28\" height=\"26.4737\" rx=\"5.5\" fill=\"white\" stroke=\"#D8D8D8\"/>\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\"/>\n <path d=\"M15.1704 10.3984L17.8415 13.0695\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </button>\n <button mat-menu-item (click)=\"deleteSubForm(i)\">\n <svg width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"0.5\" y=\"0.5\" width=\"27.6402\" height=\"26.1328\" rx=\"5.5\" fill=\"white\" stroke=\"#D8D8D8\"/>\n <path d=\"M8.60449 9.20637H20.0354\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\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\"/>\n <path d=\"M16.7696 6.67122H11.8706\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12.6871 12.3242V16.2239\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M15.9532 12.3242V16.2239\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </button>\n </mat-menu>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </div>\n <div class=\"footer\">\n <div class=\"addNewBtn\" (click)=\"addNewSubmission()\">\n <svg width=\"15\" height=\"14\" viewBox=\"0 0 15 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\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\"/>\n <path d=\"M5.3335 7.50347H9.66683\" stroke=\"#084FFF\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M7.50005 5.33594V9.66927\" stroke=\"#084FFF\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n <a class=\"ms-2 text-decoration-none\">Add New</a>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'lib-sub-form',\n templateUrl: './sub-form.component.html',\n styleUrls: ['./sub-form.component.scss'],\n})\nexport class SubFormComponent implements OnInit {\n @Input() subForm: any = {};\n @Input() edit: boolean = false;\n @Output() subFormChange = new EventEmitter<any>();\n @Input() acceptedLanguage: string ='';\n\n\n ngOnInit() {\n if (this.subForm.subFormStructure == 'single') {\n this.bindAnswersToFormElements();\n }\n }\n\n bindAnswersToFormElements() {\n const bindAnswers = (formElements: any[], submissions: any[]) => {\n formElements.forEach((formElement: { entityType: string; element: any }) => {\n if (formElement.entityType === 'QUESTION') {\n const submission = submissions.find((sub: { answers: any[] }) =>\n sub.answers.some((ans: { questionId: any }) => ans.questionId === formElement.element.id)\n );\n\n if (submission) {\n const answer = submission.answers.find((ans: { questionId: any }) => ans.questionId === formElement.element.id);\n if (answer) {\n formElement.element.answer = answer.answer;\n formElement.element.answerId = answer.answerId;\n formElement.element.validation = true;\n formElement.element.attachments = answer.attachments;\n this.subForm.submissionId = submission.submissionId;\n }\n }\n\n if (formElement.element.childLogics) {\n formElement.element.childLogics.forEach((childLogic: { formElements: any[] }) => {\n bindAnswers(childLogic.formElements, submissions);\n });\n }\n }\n });\n };\n\n if (this.subForm && this.subForm.formElements && this.subForm.submissions) {\n bindAnswers(this.subForm.formElements, this.subForm.submissions);\n }\n }\n\n\n updateSubFormWithSubmissions(event: any) {\n this.subForm = event;\n this.subFormChange.emit(this.subForm);\n }\n}\n","<div class=\"outer-container mb-4 px-3\">\n <div class=\"body container pt-3 pb-3 px-3\">\n <div class=\"tab-content pt-4 pb-3 px-3\">\n <p class=\"sectionTitle\">{{ subForm.title }}</p>\n <p [innerHTML]=\"subForm.description\" class=\"description mb-5\"></p>\n\n <div *ngIf=\"subForm.subFormStructure == 'multiple'\">\n <lib-multiple-subform\n [subForm]=\"subForm\"\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\n [acceptedLanguage]=\"acceptedLanguage\"\n ></lib-multiple-subform>\n </div>\n <div *ngIf=\"subForm.subFormStructure == 'single'\">\n <div *ngFor=\"let formElement of subForm.formElements\">\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\n <lib-check-box-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'CHECK_BOX'\n \"\n [question]=\"formElement.element\"\n ></lib-check-box-fields>\n <lib-date-time-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'DATE_TIME'\n \"\n [question]=\"formElement.element\"\n ></lib-date-time-fields>\n <lib-drop-down-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'DROP_DOWN'\n \"\n [question]=\"formElement.element\"\n ></lib-drop-down-fields>\n <lib-file-picker-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'FILE_PICKER'\n \"\n [question]=\"formElement.element\"\n ></lib-file-picker-fields>\n <lib-location-fields\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\n [question]=\"formElement.element\"\n ></lib-location-fields>\n\n <lib-mail-fields\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\n [question]=\"formElement.element\"\n >\n </lib-mail-fields>\n <lib-mobile-fields\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\n [question]=\"formElement.element\"\n >\n </lib-mobile-fields>\n <lib-number-fields\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\n [question]=\"formElement.element\"\n >\n </lib-number-fields>\n <lib-password-fields\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\n [question]=\"formElement.element\"\n >\n </lib-password-fields>\n <lib-radio-button-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'RADIO_BUTTON'\n \"\n [question]=\"formElement.element\"\n ></lib-radio-button-fields>\n <lib-rich-text-editor-fields\n *ngIf=\"\n formElement.element.formElement.elementType ===\n 'RICH_TEXT_EDITOR'\n \"\n [question]=\"formElement.element\"\n ></lib-rich-text-editor-fields>\n <lib-selection-matrix-fields\n *ngIf=\"\n formElement.element.formElement.elementType ===\n 'SELECTION_MATRIX'\n \"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-selection-matrix-fields>\n <lib-signature-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'SIGNATURE'\n \"\n [question]=\"formElement.element\"\n ></lib-signature-fields>\n <lib-slider-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\n [question]=\"formElement.element\"\n ></lib-slider-fields>\n <lib-terms-and-condition-fields\n *ngIf=\"\n formElement.element.formElement.elementType ===\n 'TERMS_AND_CONDITION'\n \"\n [question]=\"formElement.element\"\n ></lib-terms-and-condition-fields>\n <lib-text-area-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'TEXT_AREA'\n \"\n [question]=\"formElement.element\"\n ></lib-text-area-fields>\n <lib-text-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\n [question]=\"formElement.element\"\n ></lib-text-fields>\n <lib-toggle-switch-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\n \"\n [question]=\"formElement.element\"\n [acceptedLanguage]=\"acceptedLanguage\"\n ></lib-toggle-switch-fields>\n <lib-url-fields\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\n [question]=\"formElement.element\"\n ></lib-url-fields>\n <lib-first-child\n *ngIf=\"formElement.element.childLogics\"\n [childLogics]=\"formElement.element.childLogics\"\n ></lib-first-child>\n </div>\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\n <lib-section-fields\n [section]=\"formElement.element\"\n ></lib-section-fields>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\n\n@Component({\n selector: 'lib-form-elements',\n templateUrl: './form-elements.component.html',\n styleUrls: ['./form-elements.component.scss'],\n})\nexport class FormElementsComponent {\n @Input() grid: any = {};\n @Input() currentPageIndex: number = 0;\n @Input() edit : boolean = false;\n @Input() acceptedLanguage: string ='';\n @Output() subFormChange = new EventEmitter<any>();\n\n\n updateSubFormWithSubmissions(event:any){\n this.subFormChange.emit(event);\n }\n}\n","<div *ngIf=\"grid.entityType === 'QUESTION'\">\n <lib-question [question]=\"grid?.element\"\n [currentPageIndex]=\"currentPageIndex\"\n [edit]=\"edit\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-question>\n</div>\n<div *ngIf=\"grid.entityType === 'SECTION'\">\n <lib-section-fields [section]=\"grid.element\"></lib-section-fields>\n</div>\n<div *ngIf=\"grid.entityType === 'SUBFORM'\">\n <lib-sub-form [subForm]=\"grid.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\n ></lib-sub-form>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'lib-navigation-tabs',\n templateUrl: './navigation-tabs.component.html',\n styleUrls: ['./navigation-tabs.component.scss'],\n})\nexport class NavigationTabsComponent {\n @Input() pages: any[] = [];\n @Input() currentPageIndex: number = 0;\n @Output() pageChanged = new EventEmitter<number>();\n @Output() submitEmit: EventEmitter<any> = new EventEmitter<any>();\n @Input() edit : boolean = false;\n @Input() acceptedLanguage: string ='';\n @Output() subFormChange = new EventEmitter<any>();\n\n ngOnInit() {\n }\n\n updateSubFormWithSubmissions(event:any){\n this.subFormChange.emit(event);\n }\n\n\n setCurrentPage(index: number) {\n this.pageChanged.emit(index);\n }\n\n submitForm() {\n this.submitEmit.emit();\n }\n}\n","<div class=\"tab-inner-container\">\n <ul class=\"nav nav-tabs navTabs\" id=\"myTab\" role=\"tablist\">\n <li\n class=\"nav-item\"\n role=\"presentation\"\n *ngFor=\"let page of pages; let i = index\"\n [ngClass]=\"{'nav-item-ara': acceptedLanguage === 'ara', 'nav-item-default': acceptedLanguage !== 'ara'}\"\n >\n <button\n class=\"nav-link\"\n [title]=\"page.title\"\n data-bs-toggle=\"tooltip\" data-bs-placement=\"top\"\n data-bs-custom-class=\"custom-tooltip\"\n data-bs-title=\"This top tooltip is themed via CSS variables.\"\n [class.active]=\"i === currentPageIndex\"\n id=\"tab-{{ i }}\"\n [attr.data-bs-toggle]=\"'tab'\"\n [attr.data-bs-target]=\"'#content-' + i\"\n type=\"button\"\n role=\"tab\"\n [attr.aria-controls]=\"'content-' + i\"\n [attr.aria-selected]=\"i === 0\"\n (click)=\"setCurrentPage(i)\"\n >\n {{ page.title }}\n </button>\n </li>\n </ul>\n\n <div class=\"tab-content pt-5 pb-3 px-1\">\n <div\n *ngFor=\"let page of pages; let i = index\"\n class=\"tab-pane fade\"\n [class.show]=\"i === 0\"\n [class.active]=\"i === 0\"\n id=\"content-{{ i }}\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + i\"\n >\n <div *ngFor=\"let row of page.rows\">\n <div class=\"margin\">\n <div *ngFor=\"let grid of row.grid\">\n <lib-form-elements\n [grid]=\"grid\"\n [edit]=\"edit\"\n [acceptedLanguage] = \"acceptedLanguage\"\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\n ></lib-form-elements>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"currentPageIndex == pages.length - 1\"\n class=\"footerButton d-flex justify-content-end me-4 ms-4\"\n >\n <button\n class=\"btn btn-primary rounded-pill\"\n type=\"button\"\n (click)=\"submitForm()\"\n >\n Submit\n </button>\n </div>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'lib-next-prev-navigation',\n templateUrl: './next-prev-navigation.component.html',\n styleUrls: ['./next-prev-navigation.component.scss']\n})\nexport class NextPrevNavigationComponent {\n\n @Input() currentPageIndex: number = 0;\n @Input() pages: any[] = [];\n @Input() previousPage: any = {};\n @Input() nextPage: any = {};\n @Input() currentPage: any = {};\n @Output() navigateNext = new EventEmitter<void>();\n @Output() navigatePrevious = new EventEmitter<void>();\n @Output() submitEmit: EventEmitter<any> = new EventEmitter<any>();\n @Input() edit: boolean = false;\n @Input() acceptedLanguage: string ='';\n @Output() subFormChange = new EventEmitter<any>();\n\n\n updateSubFormWithSubmissions(event: any) {\n this.subFormChange.emit(event);\n }\n\n onNavigateNext() {\n this.navigateNext.emit();\n }\n\n onNavigatePrevious() {\n this.navigatePrevious.emit();\n }\n\n submitForm() {\n this.submitEmit.emit();\n }\n}\n","<div class=\"pageTitleDiv\">\n <p class=\"pageTitle\">{{ currentPage.title }}</p>\n</div>\n<div class=\"button-inner-container rounded\">\n <div class=\"tab-content pt-5 pb-3 row\">\n <div *ngFor=\"let row of pages[currentPageIndex].rows\" class=\"marginSize\">\n <div *ngFor=\"let grid of row.grid\">\n <lib-form-elements\n [grid]=\"grid\"\n [currentPageIndex]=\"currentPageIndex\"\n [edit]=\"edit\"\n [acceptedLanguage]=\"acceptedLanguage\"\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\n ></lib-form-elements>\n </div>\n </div>\n <div class=\"footerButton\">\n <div\n class=\"prevButtonDiv\"\n [ngClass]=\"{ 'prevDirection-rtl': acceptedLanguage === 'ara' }\">\n <button\n class=\"me-md-2 rounded-pill navButton\"\n type=\"button\"\n (click)=\"onNavigatePrevious()\"\n *ngIf=\"0 < currentPageIndex\"\n >\n <ng-container *ngIf=\"acceptedLanguage === 'ara'; else defaultSvg\">\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M19.4897 12.0117L4.49975 12.0117\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M13.486 6.02344L19.502 12.0004L13.486 17.9774\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </ng-container>\n <ng-template #defaultSvg>\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.51025 11.9883L19.5003 11.9883\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M10.514 17.9766L4.49805 11.9996L10.514 6.02256\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </ng-template>\n Previous | {{ previousPage.title }}\n </button>\n </div>\n <div\n class=\"nextButtonDiv\"\n [ngClass]=\"{ 'nextDirection-rtl': acceptedLanguage === 'ara' }\"\n >\n <button\n class=\"md-2 rounded-pill navButton\"\n type=\"button\"\n (click)=\"onNavigateNext()\"\n *ngIf=\"currentPageIndex < pages.length - 1\"\n >\n Next | {{ nextPage.title }}\n <ng-container *ngIf=\"acceptedLanguage === 'ara'; else defaultSvg\">\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.51025 11.9883L19.5003 11.9883\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M10.514 17.9766L4.49805 11.9996L10.514 6.02256\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </ng-container>\n <ng-template #defaultSvg>\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M19.4897 12.0117L4.49975 12.0117\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M13.486 6.02344L19.502 12.0004L13.486 17.9774\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </ng-template>\n </button>\n <button\n class=\"submitBtn ms-md-2 me-md-2 rounded-pill\"\n type=\"button\"\n *ngIf=\"currentPageIndex == pages.length - 1\"\n (click)=\"submitForm()\"\n >\n Submit\n </button>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-submission-container',\n templateUrl: './submission-container.component.html',\n styleUrls: ['./submission-container.component.scss']\n})\nexport class SubmissionContainerComponent {\n @Input() parentQuestionAnswers:any;\n\n isImageUrl(url: string): boolean {\n return url.match(/\\.(jpeg|jpg|gif|png)$/) != null;\n }\n}\n","<div class=\"subModule\">\n <div class=\"submission-container\">\n <div *ngFor=\"let qa of parentQuestionAnswers\" class=\"submission-item\">\n <div class=\"key\">{{ qa.question }}</div>\n <div class=\"value\">\n <ng-container *ngIf=\"qa.elementType === 'FILE_PICKER'; else text\">\n <div class=\"files\" *ngFor=\"let attachment of qa.attachments\">\n <ng-container *ngIf=\"isImageUrl(attachment.fileName); else fileLink\">\n <img [src]=\"attachment.fileUrl\" alt=\"{{ attachment.fileName }}\" class=\"image\">\n </ng-container>\n <ng-template #fileLink>\n <p>{{ attachment.fileName }}</p>\n <a class=\"fileName\" [href]=\"attachment.fileUrl\" target=\"_blank\">\n <i class=\"bi bi-file-earmark\"></i>\n </a>\n </ng-template>\n </div>\n </ng-container>\n <ng-template #text>\n <ng-container [ngSwitch]=\"qa.elementType\">\n <p *ngSwitchCase=\"'RICH_TEXT_EDITOR'\" [innerHTML]=\"qa.values\"></p>\n <p *ngSwitchCase=\"'DROP_DOWN'\">{{ qa.values.join(', ') }}</p>\n <p *ngSwitchCase=\"'SELECTION_MATRIX'\">{{ qa.values.join(', ') }}</p>\n <p *ngSwitchDefault>{{ qa.values }}</p>\n </ng-container>\n </ng-template>\n </div>\n </div>\n</div>\n </div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormService } from '../../services/form.service';\nimport * as mapper from '../../services/mapper.service';\nimport { PublicForm } from '../../models/publicForm.model';\nimport { ToastrService } from 'ngx-toastr';\nimport { Router } from '@angular/router';\nimport { DataService } from '../../services/data.service';\n\ninterface Answer {\n questionId: string;\n answer: any;\n answerId?: string;\n deleteFiles?: string[];\n}\n\ninterface Submission {\n submissionId: string;\n answers: Answer[];\n}\n\ninterface Form {\n formId: string;\n deletedSubmissions: any[];\n submissions: Submission[];\n}\n\ninterface QuestionAnswersWrapper {\n parentId:string;\n answers: Answer[];\n forms: Form[];\n}\n\n@Component({\n selector: 'lib-submit-form',\n templateUrl: './submit-form.component.html',\n styleUrls: ['./submit-form.component.scss'],\n})\nexport class SubmitFormComponent implements OnInit {\n question: PublicForm | null = null;\n @Input() moduleName: string = '';\n @Input() edit: boolean = false;\n @Input() submissionId: string = '';\n @Input() acceptedLanguage: string ='';\n @Output() submit: EventEmitter<string> = new EventEmitter<string>();\n\n name: string = '';\n saveAutomatically: boolean = false;\n saveInterval: number = 0;\n customizeFont: boolean = false;\n fontFamily: string = '';\n fontSize: number = 0;\n enableDataExport: boolean = false;\n fileFormats: string[] = [];\n enableQuestionNumbering: boolean = false;\n questionNumbering: string = '';\n enableGoogleRecaptcha: boolean = false;\n googleRecaptchaKey: string = '';\n googleRecaptchaSecret: string = '';\n navigation: string = '';\n markAllQuestionsAsRequired: boolean = false;\n pages: any = [];\n currentPageIndex: number = 0;\n previousPage: any = {};\n currentPage: any = {};\n nextPage: any = {};\n lastTab: boolean = false;\n questionAnswers: QuestionAnswersWrapper = { parentId:'',answers: [], forms: [] };\n files: { questionId: string; file: any }[] = [];\n parentQuestions:any;\n submission:any={};\n parentQuestionAnswers:any;\n parentSubmissionId:string='';\n submissionInProgress:boolean=false;\n\n constructor(\n private formService: FormService,\n private toastr: ToastrService,\n private router: Router,\n private dataService: DataService\n ) {\n const navigation = this.router.getCurrentNavigation();\n this.submission= navigation?.extras.state?.['submission'] \n this.parentSubmissionId=this.submission?.id;\n this.parentQuestionAnswers=this.submission?.questionAnswers\n this.parentQuestions=navigation?.extras.state?.['parentQuestions'];\n this.dataService.setParentQuestions(this.parentQuestions);\n }\n\n ngOnInit() {\n if (this.edit && this.submissionId) {\n this.getSubmittedFormData();\n } else {\n this.getFormData();\n }\n }\n\n getFormData() {\n this.formService.getQuestions(this.moduleName).subscribe((response) => {\n this.question = mapper.mapPublicFormToModel(response);\n this.assignQuestionProperties(this.question);\n });\n }\n\n getSubmittedFormData() {\n this.formService\n .getSubmittedForm(this.moduleName, this.submissionId)\n .subscribe((response) => {\n this.question = mapper.mapPublicFormToModel(response);\n this.assignQuestionProperties(this.question);\n });\n }\n\n assignQuestionProperties(question: PublicForm) {\n this.name = question.name;\n this.pages = question.pages;\n console.log(\"pages==>\",question)\n if(this.parentQuestions){\n this.parentQuestionAnswers=question?.questionAnswers;\n this.parentSubmissionId=question?.parentId;\n }\n this.currentPage = this.pages[0];\n this.nextPage = this.pages[1];\n this.saveAutomatically = question.formConfiguration.saveAutomatically;\n this.saveInterval = question.formConfiguration.saveInterval;\n this.customizeFont = question.formConfiguration.customizeFont;\n this.fontFamily = question.formConfiguration.fontFamily;\n this.fontSize = question.formConfiguration.fontSize;\n this.enableDataExport = question.formConfiguration.enableDataExport;\n this.fileFormats = question.formConfiguration.fileFormats;\n this.enableQuestionNumbering =\n question.formConfiguration.enableQuestionNumbering;\n this.questionNumbering = question.formConfiguration.questionNumbering;\n this.enableGoogleRecaptcha =\n question.formConfiguration.enableGoogleRecaptcha;\n this.googleRecaptchaKey = question.formConfiguration.googleRecaptchaKey;\n this.googleRecaptchaSecret =\n question.formConfiguration.googleRecaptchaSecret;\n this.navigation = question.formConfiguration.navigation;\n this.markAllQuestionsAsRequired =\n question.formConfiguration.markAllQuestionsAsRequired;\n }\n\n navigateToNextPage() {\n if (this.currentPageIndex < this.pages.length - 1) {\n if (this.markAllQuestionsAsRequired) {\n const currentPageData = this.pages[this.currentPageIndex];\n const validationResponse =\n this.validateRequiredQuestions(currentPageData);\n if (validationResponse.isValid) {\n this.previousPage = this.currentPage;\n this.currentPageIndex++;\n this.currentPage = this.pages[this.currentPageIndex];\n this.nextPage = this.pages[this.currentPageIndex + 1];\n } else {\n this.toastr.warning(validationResponse.message);\n }\n } else {\n this.previousPage = this.currentPage;\n this.currentPageIndex++;\n this.currentPage = this.pages[this.currentPageIndex];\n this.nextPage = this.pages[this.currentPageIndex + 1];\n }\n }\n }\n\n navigateToPreviousPage() {\n if (this.currentPageIndex > 0) {\n if (this.markAllQuestionsAsRequired) {\n const currentPageData = this.pages[this.currentPageIndex];\n const validationResponse =\n this.validateRequiredQuestions(currentPageData);\n if (validationResponse.isValid) {\n this.nextPage = this.currentPage;\n this.currentPageIndex--;\n this.currentPage = this.pages[this.currentPageIndex];\n this.previousPage = this.pages[this.currentPageIndex - 1];\n } else {\n this.toastr.warning(validationResponse.message);\n }\n } else {\n this.nextPage = this.currentPage;\n this.currentPageIndex--;\n this.currentPage = this.pages[this.currentPageIndex];\n this.previousPage = this.pages[this.currentPageIndex - 1];\n }\n }\n }\n\n setCurrentPage(index: number) {\n if (this.markAllQuestionsAsRequired) {\n const currentPageData = this.pages[this.currentPageIndex];\n const validationResponse =\n this.validateRequiredQuestions(currentPageData);\n if (validationResponse.isValid) {\n this.currentPageIndex = index;\n } else {\n this.toastr.warning(validationResponse.message);\n }\n } else {\n this.currentPageIndex = index;\n }\n }\n\n generateQuestionAnswers() {\n this.files = [];\n\n const extractQuestions = (\n formElements: any[],\n parentFormId: string | null = null,\n isInSubForm: boolean = false,\n subFormIndex: number = 0\n ): { answers: Answer[]; forms: Form[] } => {\n const questions: Answer[] = [];\n const forms: Form[] = [];\n\n formElements.forEach((element) => {\n if (element.entityType === 'QUESTION') {\n let baseQuestion: any;\n if (element.element.formElement.elementType === 'FILE_PICKER') {\n baseQuestion = {\n questionId: element.element.id,\n answer: '',\n };\n if (Array.isArray(element.element.answer)) {\n const questionId = isInSubForm\n ? `${parentFormId}_${subFormIndex}_${element.element.id}`\n : element.element.id;\n this.files.push({\n questionId: questionId,\n file: element.element.answer,\n });\n }\n } else {\n baseQuestion = {\n questionId: element.element.id,\n answer: element.element.answer,\n };\n }\n if (this.edit) {\n questions.push({\n ...baseQuestion,\n answerId: element.element.answerId || '',\n deleteFiles: element.element.deleteFiles || [],\n });\n } else {\n questions.push(baseQuestion);\n }\n\n if (element.element.childLogics) {\n for (let logic of element.element.childLogics) {\n if (logic.showLogic) {\n const result = extractQuestions(\n logic.formElements,\n parentFormId,\n isInSubForm,\n subFormIndex\n );\n questions.push(...result.answers);\n forms.push(...result.forms);\n }\n }\n }\n } else if (element.entityType === 'SUBFORM') {\n const subformId = element.element.id;\n const submissionId = element.element.submissionId;\n\n if (element.element.subFormStructure === 'single') {\n const subformQuestions = extractQuestions(\n element.element.formElements,\n subformId,\n true,\n forms.length\n );\n const subform: Form = {\n formId: subformId,\n deletedSubmissions: [],\n submissions: [\n {\n submissionId: submissionId,\n answers: subformQuestions.answers,\n },\n ],\n };\n forms.push(subform);\n } else if (element.element.subFormStructure === 'multiple') {\n const subformAnswers: Answer[] = [];\n const subformQuestions = extractQuestions(\n element.element.formElements,\n subformId,\n true,\n forms.length\n );\n const existingSubform = forms.find(\n (form) => form.formId === subformId\n );\n\n element.element?.submissions.forEach(\n (submission: any, index: number) => {\n submission.answers.forEach((answer: any) => {\n if (Array.isArray(answer.files)) {\n const questionId = `${subformId}_${index}_${answer.questionId}`;\n this.files.push({\n questionId: questionId,\n file: answer.files,\n });\n delete answer.files;\n }\n delete answer.attachments;\n });\n }\n );\n\n const subform: Form = {\n formId: subformId,\n deletedSubmissions: element.element.deletedSubmissions,\n submissions: element.element.submissions,\n };\n forms.push(subform);\n }\n }\n });\n return { answers: questions, forms: forms };\n };\n\n const processPages = (\n pages: any[]\n ): { answers: Answer[]; forms: Form[] } => {\n const questions: Answer[] = [];\n const forms: Form[] = [];\n\n pages.forEach((page) => {\n page.rows.forEach((row: any) => {\n const result = extractQuestions(row.grid);\n questions.push(...result.answers);\n forms.push(...result.forms);\n });\n });\n\n return { answers: questions, forms: forms };\n };\n\n const result = processPages(this.pages);\n\n this.questionAnswers = {\n parentId:'',\n answers: result.answers,\n forms: result.forms,\n };\n }\n\n submitForm() {\n if (this.submissionInProgress) {\n return;\n }\n \n this.submissionInProgress = true;\n \n let validationResponse = this.validateForm(this.pages);\n this.generateQuestionAnswers();\n if (validationResponse.isValid) {\n const formData = new FormData(); \n this.questionAnswers.parentId=this.parentSubmissionId;\n formData.append('json', JSON.stringify(this.questionAnswers));\n if (this.files.length > 0) {\n this.files.forEach((fileItem) => {\n fileItem.file.forEach((file: any) => {\n formData.append(fileItem.questionId, file._file);\n });\n });\n }\n const formServiceCall = this.edit && this.submissionId\n ? this.formService.updateForm(this.moduleName, this.submissionId, formData)\n : this.formService.submitForm(this.moduleName, formData);\n\n formServiceCall.subscribe({\n next:(response) => {\n this.toastr.success(this.edit ? 'Form updated successfully' : 'Form submitted successfully');\n this.submit.emit('success');\n this.submissionInProgress = false;\n },\n error:(error) => {\n this.toastr.error(error.error.message);\n this.submissionInProgress = false;\n }\n });\n } else {\n this.toastr.error(validationResponse.message);\n this.submissionInProgress = false;\n }\n }\n\n validateForm(jsonData: any): {\n isValid: boolean;\n message: string;\n pageIndex: number | 0;\n } {\n const validateQuestions = (\n formElements: any[]\n ): { isValid: boolean; message: string; pageIndex: number | 0 } => {\n for (let element of formElements) {\n if (element.entityType === 'QUESTION') {\n const required = element.element.required;\n const answer = element.element.answer;\n const validation = element.element.validation;\n if (element.element.formElement.elementType === 'FILE_PICKER') {\n const attachment = element.element.attachments;\n if (required) {\n if ((!answer || answer.length === 0) && attachment.length == 0) {\n return {\n isValid: false,\n message: `Form is invalid - Required file question ${element.element.questionNumber} has no files uploaded.`,\n pageIndex: 0,\n };\n }\n }\n } else {\n if (required) {\n if (!answer || Object.keys(answer).length === 0) {\n return {\n isValid: false,\n message: `Form is invalid - Question ${element.element.questionNumber} is required but no answer provided.`,\n pageIndex: 0,\n };\n } else if (!validation) {\n return {\n isValid: false,\n message: `Form is invalid - Question ${element.element.questionNumber} is required but validation is false.`,\n pageIndex: 0,\n };\n }\n } else if (!required && answer && Object.keys(answer).length > 0) {\n if (!validation) {\n return {\n isValid: false,\n message: `Form is invalid - Question ${element.element.questionNumber} is not required but answer provided with validation false.`,\n pageIndex: 0,\n };\n }\n }\n }\n if (element.element.childLogics) {\n for (let logic of element.element.childLogics) {\n if (logic.showLogic) {\n const result = validateQuestions(logic.formElements);\n if (!result.isValid) return result;\n }\n }\n }\n } else if (element.entityType === 'SUBFORM') {\n if (element.element.formElements) {\n const result = validateQuestions(element.element.formElements);\n if (!result.isValid) return result;\n }\n }\n }\n return { isValid: true, message: '', pageIndex: 0 };\n };\n\n for (let pageIndex = 0; pageIndex < jsonData.length; pageIndex++) {\n const page = jsonData[pageIndex];\n for (let row of page.rows) {\n const result = validateQuestions(row.grid);\n if (!result.isValid) {\n return {\n isValid: false,\n message: `Page ${pageIndex + 1}: ${result.message}`,\n pageIndex: pageIndex,\n };\n }\n }\n }\n return {\n isValid: true,\n message: 'Form is valid.',\n pageIndex: 0,\n };\n }\n\n validateRequiredQuestions(page: any): { isValid: boolean; message: string } {\n const validateQuestions = (\n formElements: any[]\n ): { isValid: boolean; message: string } => {\n for (let element of formElements) {\n if (element.entityType === 'QUESTION') {\n const required = element.element.required;\n const answer = element.element.answer;\n if (element.element.formElement.elementType === 'FILE_PICKER') {\n if (required) {\n if (!answer || answer.length === 0) {\n return {\n isValid: false,\n message: `Required file question ${element.element.questionNumber} is not answered.`,\n };\n }\n }\n } else {\n if (required) {\n if (!answer || Object.keys(answer).length === 0) {\n return {\n isValid: false,\n message: `Required question ${element.element.questionNumber} is not answered.`,\n };\n }\n }\n }\n if (element.element.childLogics) {\n for (let logic of element.element.childLogics) {\n if (logic.showLogic) {\n const result = validateQuestions(logic.formElements);\n if (!result.isValid) return result;\n }\n }\n }\n } else if (element.entityType === 'SUBFORM') {\n if (element.element.formElements) {\n const result = validateQuestions(element.element.formElements);\n if (!result.isValid) return result;\n }\n }\n }\n return { isValid: true, message: 'All required questions are answered.' };\n };\n\n for (let row of page.rows) {\n const result = validateQuestions(row.grid);\n if (!result.isValid) {\n return result;\n }\n }\n return { isValid: true, message: 'All required questions are answered.' };\n }\n\n updateSubFormWithSubmissions(event: any) {\n this.updateSubForm(this.pages, event);\n }\n\n updateSubForm = (pages: any[], updatedSubForm: any) => {\n pages.forEach((page) => {\n page.rows.forEach((row: any) => {\n row.grid.forEach((element: any) => {\n if (\n element.entityType === 'SUBFORM' &&\n element.element.id === updatedSubForm.formId\n ) {\n // Update the existing subform with the new data\n element.element = updatedSubForm;\n } else if (\n element.entityType === 'SUBFORM' &&\n element.element.id !== updatedSubForm.formId\n ) {\n // Handle multiple subforms logic here if needed\n } else if (\n element.entityType === 'QUESTION' &&\n element.element.childLogics\n ) {\n // Recursively update child logics\n element.element.childLogics.forEach((logic: any) => {\n if (logic.showLogic) {\n this.updateSubForm(logic.formElements, updatedSubForm);\n }\n });\n }\n });\n });\n });\n };\n}\n","<div class=\"outer-container\">\n \n \n <div class=\"head container\">\n <lib-header [name]=\"name\"></lib-header>\n </div>\n <div class=\"body container\">\n \n <lib-submission-container [parentQuestionAnswers]=\"parentQuestionAnswers\"\n *ngIf=\"parentQuestionAnswers\"></lib-submission-container>\n \n <lib-navigation-tabs\n *ngIf=\"navigation == 'TAB'\"\n [pages]=\"pages\"\n [currentPageIndex]=\"currentPageIndex\"\n (pageChanged)=\"setCurrentPage($event)\"\n (submitEmit)=\"submitForm()\"\n [edit]=\"edit\"\n [acceptedLanguage] = \"acceptedLanguage\"\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\n ></lib-navigation-tabs>\n <lib-next-prev-navigation\n *ngIf=\"navigation == 'NEXT_AND_PREVIOUS_BUTTON'\"\n [currentPageIndex]=\"currentPageIndex\"\n [pages]=\"pages\"\n [previousPage]=\"previousPage\"\n [currentPage]=\"currentPage\"\n [nextPage]=\"nextPage\"\n (navigateNext)=\"navigateToNextPage()\"\n (navigatePrevious)=\"navigateToPreviousPage()\"\n [acceptedLanguage] = \"acceptedLanguage\"\n (submitEmit)=\"submitForm()\"\n [edit]=\"edit\"\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\n ></lib-next-prev-navigation>\n </div>\n</div>\n","import { Component, EventEmitter, Inject, Input, OnInit, Output } from '@angular/core';\nimport { DataService } from '../services/data.service';\nimport { DOCUMENT } from '@angular/common';\nimport { environment } from '../environment/environment';\n\n\n@Component({\n selector: 'lib-formSubmission',\n templateUrl: './form-submission.component.html',\n styleUrls: ['./form-submission.component.scss'],\n})\n\nexport class FormSubmissionComponent implements OnInit {\n @Input() formData: any = {};\n @Input() edit: boolean = false;\n @Input() submissionId: string = '';\n @Output() submitForm: EventEmitter<string> = new EventEmitter<string>();\n header:any;\n constructor(private dataService: DataService, @Inject(DOCUMENT) private document: Document) { }\n ngOnInit() {\n this.dataService.setApiUrl(this.formData.apiurl);\n this.dataService.setHeader(this.formData.headers);\n\n this.dataService.header$.subscribe((data) => {\n this.header = data;\n this.setHtmlDirection(this.header.acceptedLanguage);\n });\n }\n\n setHtmlDirection(language: string) {\n const htmlTag = this.document.getElementsByTagName('html')[0] as HTMLHtmlElement;\n\n if (language === 'ara') {\n environment.htmlDirection = 'rtl';\n } else {\n environment.htmlDirection = 'ltr';\n }\n\n htmlTag.dir = environment.htmlDirection; \n }\n\n submit(event: any) {\n this.submitForm.emit(event);\n }\n}\n","<lib-submit-form\n [moduleName]=\"formData.moduleName\"\n [submissionId]=\"submissionId\"\n [edit]=\"edit\"\n [acceptedLanguage] = \"formData.headers.acceptedLanguage\"\n (submit)=\"submit($event)\"\n></lib-submit-form>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CheckBoxFieldsComponent } from './check-box-fields/check-box-fields.component';\nimport { DateTimeFieldsComponent } from './date-time-fields/date-time-fields.component';\nimport { DropDownFieldsComponent } from './drop-down-fields/drop-down-fields.component';\nimport { FilePickerFieldsComponent } from './file-picker-fields/file-picker-fields.component';\nimport { LocationFieldsComponent } from './location-fields/location-fields.component';\nimport { RadioButtonFieldsComponent } from './radio-button-fields/radio-button-fields.component';\nimport { RichTextEditorFieldsComponent } from './rich-text-editor-fields/rich-text-editor-fields.component';\nimport { SelectionMatrixFieldsComponent } from './selection-matrix-fields/selection-matrix-fields.component';\nimport { SignatureFieldsComponent } from './signature-fields/signature-fields.component';\nimport { SliderFieldsComponent } from './slider-fields/slider-fields.component';\nimport { TermsAndConditionFieldsComponent } from './terms-and-condition-fields/terms-and-condition-fields.component';\nimport { TextAreaFieldsComponent } from './text-area-fields/text-area-fields.component';\nimport { TextFieldsComponent } from './text-fields/text-fields.component';\nimport { ToggleSwitchFieldsComponent } from './toggle-switch-fields/toggle-switch-fields.component';\nimport { UrlFieldsComponent } from './url-fields/url-fields.component';\nimport { FormsModule } from '@angular/forms';\nimport { MailFieldsComponent } from './mail-fields/mail-fields.component';\nimport { MobileFieldsComponent } from './mobile-fields/mobile-fields.component';\nimport { NumberFieldsComponent } from './number-fields/number-fields.component';\nimport { PasswordFieldsComponent } from './password-fields/password-fields.component';\nimport {MatSliderModule} from \"@angular/material/slider\";\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\nimport { AngularEditorModule } from '@kolkov/angular-editor';\n\n\nimport { GoogleMapsModule } from '@angular/google-maps';\nimport { DropdownModule } from '@piserve-tech/drop-down';\nimport { FilePreviewModule } from '@piserve-tech/file-preview';\nimport { SectionFieldsComponent } from './section-fields/section-fields.component';\nimport { DocUploadModule } from '@piserve-tech/file-upload';\n\n\n\n\n\n\n@NgModule({\n declarations: [\n CheckBoxFieldsComponent,\n DateTimeFieldsComponent,\n DropDownFieldsComponent,\n FilePickerFieldsComponent,\n LocationFieldsComponent,\n RadioButtonFieldsComponent,\n RichTextEditorFieldsComponent,\n SelectionMatrixFieldsComponent,\n SignatureFieldsComponent,\n SliderFieldsComponent,\n TermsAndConditionFieldsComponent,\n TextAreaFieldsComponent,\n TextFieldsComponent,\n ToggleSwitchFieldsComponent,\n UrlFieldsComponent,\n MailFieldsComponent,\n MobileFieldsComponent,\n NumberFieldsComponent,\n PasswordFieldsComponent,\n SectionFieldsComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n MatSliderModule,\n BsDatepickerModule.forRoot(),\n DropdownModule,\n AngularEditorModule,\n DocUploadModule,\n GoogleMapsModule,\n FilePreviewModule\n ],\n exports: [\n CheckBoxFieldsComponent,\n DateTimeFieldsComponent,\n DropDownFieldsComponent,\n FilePickerFieldsComponent,\n LocationFieldsComponent,\n MailFieldsComponent,\n MobileFieldsComponent,\n NumberFieldsComponent,\n PasswordFieldsComponent,\n RadioButtonFieldsComponent,\n RichTextEditorFieldsComponent,\n SelectionMatrixFieldsComponent,\n SignatureFieldsComponent,\n SliderFieldsComponent,\n TermsAndConditionFieldsComponent,\n TextAreaFieldsComponent,\n TextFieldsComponent,\n ToggleSwitchFieldsComponent,\n UrlFieldsComponent,\n SectionFieldsComponent\n\n ]\n})\nexport class FormFieldsModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FirstChildComponent } from './first-child/first-child.component';\nimport { SecondChildComponent } from './second-child/second-child.component';\nimport { ThirdChildComponent } from './third-child/third-child.component';\nimport { ForthChildComponent } from './forth-child/forth-child.component';\nimport { FormFieldsModule } from '../form-fields/form-fields.module';\n\n\n\n@NgModule({\n declarations: [ FirstChildComponent, SecondChildComponent, ThirdChildComponent, ForthChildComponent],\n imports: [\n CommonModule,\n FormFieldsModule,\n ],\n exports:[FirstChildComponent, SecondChildComponent, ThirdChildComponent, ForthChildComponent]\n})\nexport class LogicModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { QuestionComponent } from './question/question.component';\nimport { LogicModule } from '../logic/logic.module';\nimport { FormFieldsModule } from '../form-fields/form-fields.module';\n\n\n\n@NgModule({\n declarations: [QuestionComponent],\n imports: [\n CommonModule,\n LogicModule,\n FormFieldsModule,\n ],\n exports:[QuestionComponent]\n})\nexport class QuestionModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SubFormComponent } from './sub-form/sub-form.component';\nimport { FormFieldsModule } from '../form-fields/form-fields.module';\nimport { LogicModule } from '../logic/logic.module';\nimport { MultipleSubformComponent } from './multiple-subform/multiple-subform.component';\nimport { SubmissionModalComponent } from './submission-modal/submission-modal.component';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatTableModule } from '@angular/material/table';\nimport {MatMenuModule} from '@angular/material/menu';\nimport {MatIconModule} from '@angular/material/icon';\n\n@NgModule({\n declarations: [SubFormComponent, MultipleSubformComponent, SubmissionModalComponent],\n imports: [\n CommonModule,\n FormFieldsModule,\n LogicModule,\n MatDialogModule,\n MatTableModule,\n MatMenuModule,\n MatIconModule\n ],\n exports:[SubFormComponent]\n})\nexport class SubFormModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormElementsComponent } from './form-elements/form-elements.component';\nimport { QuestionModule } from '../question/question.module';\nimport { FormFieldsModule } from '../form-fields/form-fields.module';\nimport { SubFormModule } from '../sub-form/sub-form.module';\n\n\n\n@NgModule({\n declarations: [ FormElementsComponent],\n imports: [\n CommonModule,\n QuestionModule,\n FormFieldsModule,\n SubFormModule\n ],\n exports: [\n FormElementsComponent\n ]\n})\nexport class ElementTypeModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SubmitFormComponent } from './submit-form/submit-form.component';\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\nimport { HeaderComponent } from './header/header.component';\nimport { NavigationTabsComponent } from './navigation-tabs/navigation-tabs.component';\nimport { NextPrevNavigationComponent } from './next-prev-navigation/next-prev-navigation.component';\nimport { ElementTypeModule } from '../element-type/element-type.module';\nimport { ToastrModule } from 'ngx-toastr';\nimport { SubmissionContainerComponent } from './submission-container/submission-container.component';\n\n\n\n@NgModule({\n declarations: [\n SubmitFormComponent,\n HeaderComponent,\n NavigationTabsComponent,\n NextPrevNavigationComponent,\n SubmissionContainerComponent\n ],\n imports: [\n CommonModule,\n BsDatepickerModule.forRoot(),\n ElementTypeModule,\n ToastrModule\n ],\n exports: [SubmitFormComponent, NextPrevNavigationComponent]\n})\nexport class FormSubmitModule { }\n","import { NgModule } from '@angular/core';\nimport { FormSubmissionComponent } from './form-submission.component';\n// import { DropdownModule } from '@piserve-tech/drop-down';\nimport { FilePreviewModule } from '@piserve-tech/file-preview';\nimport { FormsModule } from '@angular/forms';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { FormFieldsModule } from '../form-fields/form-fields.module';\nimport { FormSubmitModule } from '../form-submission/form-submission.module';\nimport { DropdownModule } from '@piserve-tech/drop-down';\nimport { ElementTypeModule } from '../element-type/element-type.module';\nimport { LogicModule } from '../logic/logic.module';\nimport { ToastrModule } from 'ngx-toastr';\nimport { DocUploadModule } from '@piserve-tech/file-upload';\n\n@NgModule({\n declarations: [FormSubmissionComponent],\n imports: [\n DropdownModule,\n FilePreviewModule,\n DocUploadModule,\n FormsModule,\n MatTabsModule,\n FormFieldsModule,\n FormSubmitModule,\n ElementTypeModule,\n LogicModule,\n ToastrModule.forRoot({\n positionClass: 'toast-bottom-left',\n }),\n ],\n exports: [FormSubmissionComponent],\n})\nexport class FormSubmissionModule {}\n","/*\n * Public API Surface of form-submission\n */\n\nexport * from './lib/form-submission.service';\nexport * from './lib/form-submission.component';\nexport * from './lib/form-submission.module';\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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"}