@piserve-tech/form-submission 0.0.0-watch
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/element-type/element-type.module.d.ts +12 -0
- package/element-type/form-elements/form-elements.component.d.ts +7 -0
- package/element-type/question/question.component.d.ts +14 -0
- package/element-type/sub-form/sub-form.component.d.ts +6 -0
- package/esm2022/element-type/element-type.module.mjs +36 -0
- package/esm2022/element-type/form-elements/form-elements.component.mjs +23 -0
- package/esm2022/element-type/question/question.component.mjs +52 -0
- package/esm2022/element-type/sub-form/sub-form.component.mjs +17 -0
- package/esm2022/form-fields/check-box-fields/check-box-fields.component.mjs +198 -0
- package/esm2022/form-fields/date-time-fields/date-time-fields.component.mjs +155 -0
- package/esm2022/form-fields/drop-down-fields/drop-down-fields.component.mjs +147 -0
- package/esm2022/form-fields/file-picker-fields/file-picker-fields.component.mjs +77 -0
- package/esm2022/form-fields/form-fields.module.mjs +154 -0
- package/esm2022/form-fields/location-fields/location-fields.component.mjs +79 -0
- package/esm2022/form-fields/mail-fields/mail-fields.component.mjs +75 -0
- package/esm2022/form-fields/mobile-fields/mobile-fields.component.mjs +81 -0
- package/esm2022/form-fields/number-fields/number-fields.component.mjs +59 -0
- package/esm2022/form-fields/password-fields/password-fields.component.mjs +172 -0
- package/esm2022/form-fields/radio-button-fields/radio-button-fields.component.mjs +129 -0
- package/esm2022/form-fields/rich-text-editor-fields/rich-text-editor-fields.component.mjs +89 -0
- package/esm2022/form-fields/section-fields/section-fields.component.mjs +16 -0
- package/esm2022/form-fields/selection-matrix-fields/selection-matrix-fields.component.mjs +27 -0
- package/esm2022/form-fields/signature-fields/signature-fields.component.mjs +29 -0
- package/esm2022/form-fields/slider-fields/slider-fields.component.mjs +60 -0
- package/esm2022/form-fields/terms-and-condition-fields/terms-and-condition-fields.component.mjs +27 -0
- package/esm2022/form-fields/text-area-fields/text-area-fields.component.mjs +61 -0
- package/esm2022/form-fields/text-fields/text-fields.component.mjs +86 -0
- package/esm2022/form-fields/toggle-switch-fields/toggle-switch-fields.component.mjs +42 -0
- package/esm2022/form-fields/url-fields/url-fields.component.mjs +59 -0
- package/esm2022/form-submission/form-submission.module.mjs +42 -0
- package/esm2022/form-submission/header/header.component.mjs +16 -0
- package/esm2022/form-submission/logic/logic.component.mjs +17 -0
- package/esm2022/form-submission/navigation-tabs/navigation-tabs.component.mjs +27 -0
- package/esm2022/form-submission/next-prev-navigation/next-prev-navigation.component.mjs +42 -0
- package/esm2022/form-submission/submit-form/submit-form.component.mjs +157 -0
- package/esm2022/lib/form-submission.component.mjs +23 -0
- package/esm2022/lib/form-submission.module.mjs +45 -0
- package/esm2022/lib/form-submission.service.mjs +14 -0
- package/esm2022/logic/logic/logic.component.mjs +17 -0
- package/esm2022/logic/logic.module.mjs +20 -0
- package/esm2022/models/appearance.model.mjs +2 -0
- package/esm2022/models/elementOptionAPI.model.mjs +2 -0
- package/esm2022/models/elementOptionAPIData.model.mjs +2 -0
- package/esm2022/models/elementOptionDB.model.mjs +2 -0
- package/esm2022/models/elementOptionDBCriteria.model.mjs +2 -0
- package/esm2022/models/enum/condition.enum.mjs +18 -0
- package/esm2022/models/enum/elementType .enum.mjs +24 -0
- package/esm2022/models/enum/entityType.enum.mjs +12 -0
- package/esm2022/models/formConfiguration.model.mjs +2 -0
- package/esm2022/models/formElement.model.mjs +2 -0
- package/esm2022/models/formElementType.model.mjs +2 -0
- package/esm2022/models/grid.model.mjs +2 -0
- package/esm2022/models/logic.model.mjs +2 -0
- package/esm2022/models/option.model.mjs +2 -0
- package/esm2022/models/page.model.mjs +2 -0
- package/esm2022/models/publicForm.model.mjs +2 -0
- package/esm2022/models/question.model.mjs +2 -0
- package/esm2022/models/row.model.mjs +2 -0
- package/esm2022/models/section.model.mjs +2 -0
- package/esm2022/models/subForm.model.mjs +2 -0
- package/esm2022/models/validation.model.mjs +2 -0
- package/esm2022/piserve-tech-form-submission.mjs +5 -0
- package/esm2022/public-api.mjs +7 -0
- package/esm2022/services/countryService.mjs +65 -0
- package/esm2022/services/data.service.mjs +26 -0
- package/esm2022/services/form.service.mjs +43 -0
- package/esm2022/services/mapper.service.mjs +256 -0
- package/fesm2022/piserve-tech-form-submission.mjs +2558 -0
- package/fesm2022/piserve-tech-form-submission.mjs.map +1 -0
- package/form-fields/check-box-fields/check-box-fields.component.d.ts +42 -0
- package/form-fields/date-time-fields/date-time-fields.component.d.ts +41 -0
- package/form-fields/drop-down-fields/drop-down-fields.component.d.ts +45 -0
- package/form-fields/file-picker-fields/file-picker-fields.component.d.ts +24 -0
- package/form-fields/form-fields.module.d.ts +36 -0
- package/form-fields/location-fields/location-fields.component.d.ts +24 -0
- package/form-fields/mail-fields/mail-fields.component.d.ts +21 -0
- package/form-fields/mobile-fields/mobile-fields.component.d.ts +45 -0
- package/form-fields/number-fields/number-fields.component.d.ts +22 -0
- package/form-fields/password-fields/password-fields.component.d.ts +35 -0
- package/form-fields/radio-button-fields/radio-button-fields.component.d.ts +39 -0
- package/form-fields/rich-text-editor-fields/rich-text-editor-fields.component.d.ts +24 -0
- package/form-fields/section-fields/section-fields.component.d.ts +6 -0
- package/form-fields/selection-matrix-fields/selection-matrix-fields.component.d.ts +10 -0
- package/form-fields/signature-fields/signature-fields.component.d.ts +12 -0
- package/form-fields/slider-fields/slider-fields.component.d.ts +25 -0
- package/form-fields/terms-and-condition-fields/terms-and-condition-fields.component.d.ts +10 -0
- package/form-fields/text-area-fields/text-area-fields.component.d.ts +22 -0
- package/form-fields/text-fields/text-fields.component.d.ts +30 -0
- package/form-fields/toggle-switch-fields/toggle-switch-fields.component.d.ts +16 -0
- package/form-fields/url-fields/url-fields.component.d.ts +22 -0
- package/form-submission/form-submission.module.d.ts +14 -0
- package/form-submission/header/header.component.d.ts +6 -0
- package/form-submission/logic/logic.component.d.ts +6 -0
- package/form-submission/navigation-tabs/navigation-tabs.component.d.ts +10 -0
- package/form-submission/next-prev-navigation/next-prev-navigation.component.d.ts +15 -0
- package/form-submission/submit-form/submit-form.component.d.ts +43 -0
- package/index.d.ts +5 -0
- package/lib/form-submission.component.d.ts +10 -0
- package/lib/form-submission.module.d.ts +14 -0
- package/lib/form-submission.service.d.ts +6 -0
- package/logic/logic/logic.component.d.ts +6 -0
- package/logic/logic.module.d.ts +8 -0
- package/models/appearance.model.d.ts +48 -0
- package/models/elementOptionAPI.model.d.ts +11 -0
- package/models/elementOptionAPIData.model.d.ts +5 -0
- package/models/elementOptionDB.model.d.ts +7 -0
- package/models/elementOptionDBCriteria.model.d.ts +7 -0
- package/models/enum/condition.enum.d.ts +16 -0
- package/models/enum/elementType .enum.d.ts +22 -0
- package/models/enum/entityType.enum.d.ts +10 -0
- package/models/formConfiguration.model.d.ts +16 -0
- package/models/formElement.model.d.ts +12 -0
- package/models/formElementType.model.d.ts +5 -0
- package/models/grid.model.d.ts +8 -0
- package/models/logic.model.d.ts +8 -0
- package/models/option.model.d.ts +11 -0
- package/models/page.model.d.ts +5 -0
- package/models/publicForm.model.d.ts +7 -0
- package/models/question.model.d.ts +14 -0
- package/models/row.model.d.ts +4 -0
- package/models/section.model.d.ts +5 -0
- package/models/subForm.model.d.ts +8 -0
- package/models/validation.model.d.ts +44 -0
- package/package.json +43 -0
- package/public-api.d.ts +3 -0
- package/services/countryService.d.ts +21 -0
- package/services/data.service.d.ts +13 -0
- package/services/form.service.d.ts +17 -0
- package/services/mapper.service.d.ts +10 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"piserve-tech-form-submission.mjs","sources":["../../../projects/form-submission/src/lib/form-submission.service.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/section-fields/section-fields.component.ts","../../../projects/form-submission/src/form-fields/section-fields/section-fields.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/logic/logic/logic.component.ts","../../../projects/form-submission/src/logic/logic/logic.component.html","../../../projects/form-submission/src/element-type/question/question.component.ts","../../../projects/form-submission/src/element-type/question/question.component.html","../../../projects/form-submission/src/element-type/sub-form/sub-form.component.ts","../../../projects/form-submission/src/element-type/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/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/element-type/element-type.module.ts","../../../projects/form-submission/src/form-submission/form-submission.module.ts","../../../projects/form-submission/src/lib/form-submission.module.ts","../../../projects/form-submission/src/public-api.ts","../../../projects/form-submission/src/piserve-tech-form-submission.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FormSubmissionService {\r\n\r\n constructor() { }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DataService {\r\n constructor() {}\r\n\r\n private dataSubject = new BehaviorSubject<string>('');\r\n public apiUrl$: Observable<string> = this.dataSubject.asObservable();\r\n private headerSubject = new BehaviorSubject<any>({});\r\n public header$: Observable<any> = this.headerSubject.asObservable();\r\n\r\n setApiUrl(data: string): void {\r\n this.dataSubject.next(data);\r\n }\r\n\r\n setHeader(data: any) {\r\n this.headerSubject.next(data);\r\n }\r\n}\r\n","import { Appearance } from '../models/appearance.model';\r\nimport { ElementOptionAPI } from '../models/elementOptionAPI.model';\r\nimport { elementOptionAPIData } from '../models/elementOptionAPIData.model';\r\nimport { ElementOptionDB } from '../models/elementOptionDB.model';\r\nimport { ElementOptionDBCriteria } from '../models/elementOptionDBCriteria.model';\r\nimport { FormConfiguration } from '../models/formConfiguration.model';\r\nimport { FormElement } from '../models/formElement.model';\r\nimport { Grid } from '../models/grid.model';\r\nimport { Page } from '../models/page.model';\r\nimport { PublicForm } from '../models/publicForm.model';\r\nimport { Question } from '../models/question.model';\r\nimport { Row } from '../models/row.model';\r\nimport { Validation } from '../models/validation.model';\r\nimport { Option } from '../models/option.model';\r\nimport { Section } from '../models/section.model';\r\nimport { SubForm } from '../models/subForm.model';\r\nimport { FormElementType } from '../models/formElementType.model';\r\nimport { Logic } from '../models/logic.model';\r\n\r\nexport function mapPublicFormToModel(apiPublicForm: any): PublicForm {\r\n return {\r\n name: apiPublicForm.result.name,\r\n formConfiguration: mapFormConfigurationToModel(\r\n apiPublicForm.result.formConfiguration\r\n ),\r\n pages: apiPublicForm.result.pages.map((apiPage: any) =>\r\n mapPageToModel(apiPage)\r\n ),\r\n };\r\n}\r\n\r\nfunction mapFormConfigurationToModel(\r\n apiFormConfiguration: any\r\n): FormConfiguration {\r\n return {\r\n saveAutomatically: apiFormConfiguration.saveAutomatically,\r\n saveInterval: apiFormConfiguration.saveInterval,\r\n customizeFont: apiFormConfiguration.customizeFont,\r\n fontFamily: apiFormConfiguration.fontFamily,\r\n fontSize: apiFormConfiguration.fontSize,\r\n enableDataExport: apiFormConfiguration.enableDataExport,\r\n fileFormats: apiFormConfiguration.fileFormats,\r\n enableQuestionNumbering: apiFormConfiguration.enableQuestionNumbering,\r\n questionNumbering: apiFormConfiguration.questionNumbering,\r\n enableGoogleRecaptcha: apiFormConfiguration.enableGoogleRecaptcha,\r\n googleRecaptchaKey: apiFormConfiguration.googleRecaptchaKey,\r\n googleRecaptchaSecret: apiFormConfiguration.googleRecaptchaSecret,\r\n navigation: apiFormConfiguration.navigation,\r\n markAllQuestionsAsRequired: apiFormConfiguration.markAllQuestionsAsRequired,\r\n };\r\n}\r\n\r\nfunction mapPageToModel(apiPage: any): Page {\r\n return {\r\n title: apiPage.title,\r\n rows: apiPage.rows.map((apiRow: any) => mapRowToModel(apiRow)),\r\n };\r\n}\r\n\r\nfunction mapRowToModel(apiRow: any): Row {\r\n return {\r\n grid: apiRow.grid.map((apiGrid: any) => mapGridToModel(apiGrid)),\r\n };\r\n}\r\n\r\nfunction mapGridToModel(apiGrid: any): Grid {\r\n let entity: Section | Question | SubForm | undefined;\r\n\r\n switch (apiGrid.entityType) {\r\n case 'QUESTION':\r\n entity = mapQuestionToModel(apiGrid.formElementType);\r\n break;\r\n case 'SECTION':\r\n entity = mapSectionToModel(apiGrid.formElementType);\r\n break;\r\n case 'SUBFORM':\r\n entity = mapSubFormToModel(apiGrid.formElementType);\r\n break;\r\n default:\r\n throw new Error(`Unknown entity type: ${apiGrid.entityType}`);\r\n }\r\n \r\n return {\r\n entityType: apiGrid.entityType,\r\n formElementType: entity,\r\n };\r\n}\r\n\r\nexport function mapSectionToModel(apiSection: any): Section {\r\n return {\r\n id: apiSection.id,\r\n title: apiSection.title,\r\n description: apiSection.description,\r\n };\r\n}\r\n\r\nexport function mapQuestionToModel(apiQuestion: any): Question {\r\n return {\r\n count: apiQuestion.count,\r\n id: apiQuestion.id,\r\n questionNumber: apiQuestion.questionNumber,\r\n required: apiQuestion.required,\r\n hint: apiQuestion.hint,\r\n question: apiQuestion.question,\r\n answer:{},\r\n validation:true,\r\n formElement: mapFormElementToModel(apiQuestion.formElement),\r\n childLogics: apiQuestion?.childLogics?.map((logic: any) =>\r\n mapLogicToModel(logic)\r\n ),\r\n };\r\n}\r\n\r\nfunction mapFormElementToModel(apiFormElement: any): FormElement {\r\n return {\r\n elementType: apiFormElement.elementType,\r\n appearance: mapAppearanceToModel(apiFormElement.appearance),\r\n validation: mapValidationToModel(apiFormElement.validation),\r\n option: mapOptionToModel(apiFormElement?.option),\r\n selectionMatrixLabel: apiFormElement.selectionMatrixLabel,\r\n selectionMatrixColumn: apiFormElement.selectionMatrixColumn,\r\n };\r\n}\r\n\r\nfunction mapLogicToModel(apiLogic: any): Logic {\r\n return {\r\n id: apiLogic.id,\r\n inputValue: apiLogic.inputValue,\r\n condition: apiLogic.condition,\r\n formElements: apiLogic.formElements.map((element: any) =>\r\n mapFormElementTypeToModel(element)\r\n ),\r\n };\r\n}\r\n\r\nexport function mapSubFormToModel(apiSubForm: any): SubForm {\r\n return {\r\n id: apiSubForm.id,\r\n title: apiSubForm.title,\r\n description: apiSubForm.description,\r\n subFormStructure: apiSubForm.subFormStructure,\r\n formElements: apiSubForm.formElements.map((element: any) =>\r\n mapFormElementTypeToModel(element)\r\n ),\r\n };\r\n}\r\n\r\nexport function mapFormElementTypeToModel(\r\n apiFormElementType: any\r\n): FormElementType<any> {\r\n return {\r\n entityType: apiFormElementType.entityType,\r\n formElementType: apiFormElementType.formElementType,\r\n };\r\n}\r\n\r\nfunction mapAppearanceToModel(apiAppearance: any): Appearance {\r\n return {\r\n placeholder: apiAppearance.placeholder,\r\n fontSize: apiAppearance.fontSize,\r\n textAlign: apiAppearance.textAlign,\r\n font: apiAppearance.font,\r\n underline: apiAppearance.underline,\r\n bold: apiAppearance.bold,\r\n italics: apiAppearance.italics,\r\n defaultValue: apiAppearance.defaultValue,\r\n numberOfRows: apiAppearance.numberOfRows,\r\n singleSelection: apiAppearance.singleSelection,\r\n displayCountryCode: apiAppearance.displayCountryCode,\r\n displayFlag: apiAppearance.displayFlag,\r\n displayCode: apiAppearance.displayCode,\r\n showCountryName: apiAppearance.showCountryName,\r\n beautifyNumbers: apiAppearance.beautifyNumbers,\r\n upAndDownButton: apiAppearance.upAndDownButton,\r\n allowNegativeValues: apiAppearance.allowNegativeValues,\r\n showPreviewButton: apiAppearance.showPreviewButton,\r\n confirmPassword: apiAppearance.confirmPassword,\r\n viewButton: apiAppearance.viewButton,\r\n displayStrong: apiAppearance.displayStrong,\r\n dateType: apiAppearance.dateType,\r\n format: apiAppearance.format,\r\n setCurrentPosition: apiAppearance.setCurrentPosition,\r\n defaultZoomLevel: apiAppearance.defaultZoomLevel,\r\n allowFullScreen: apiAppearance.allowFullScreen,\r\n latitude: apiAppearance.latitude,\r\n longitude: apiAppearance.longitude,\r\n showAcceptButton: apiAppearance.showAcceptButton,\r\n labelOnValue: apiAppearance.labelOnValue,\r\n labelOffValue: apiAppearance.labelOffValue,\r\n labelOnColor: apiAppearance.labelOnColor,\r\n labelOffColor: apiAppearance.labelOffColor,\r\n minValue: apiAppearance.minValue,\r\n maxValue: apiAppearance.maxValue,\r\n stepValue: apiAppearance.stepValue,\r\n changeSliderColor: apiAppearance.changeSliderColor,\r\n sliderColor: apiAppearance.sliderColor,\r\n canvasOption: apiAppearance.canvasOption,\r\n selectionType: apiAppearance.selectionType,\r\n dragAndDrop: apiAppearance.dragAndDrop,\r\n previewUploadedFiles: apiAppearance.previewUploadedFiles,\r\n multiFileUploads: apiAppearance.multiFileUploads,\r\n selectionColorRequired: apiAppearance.selectionColorRequired,\r\n selectionColor: apiAppearance.selectionColor,\r\n color: apiAppearance.color,\r\n };\r\n}\r\n\r\nfunction mapValidationToModel(apiValidation: any): Validation {\r\n return {\r\n regexValidation: apiValidation.regexValidation,\r\n regex: apiValidation.regex,\r\n validationMessage: apiValidation.validationMessage,\r\n limitedCharacters: apiValidation.limitedCharacters,\r\n count: apiValidation.count,\r\n minimumSelection: apiValidation.minimumSelection,\r\n maximumSelection: apiValidation.maximumSelection,\r\n countryWiseValidation: apiValidation.countryWiseValidation,\r\n restrictCountry: apiValidation.restrictCountry,\r\n allowedCountry: apiValidation.allowedCountry,\r\n blockedCountry: apiValidation.blockedCountry,\r\n regularExpression: apiValidation.regularExpression,\r\n expectedDomains: apiValidation.expectedDomains,\r\n min: apiValidation.min,\r\n max: apiValidation.max,\r\n minLength: apiValidation.minLength,\r\n maxLength: apiValidation.maxLength,\r\n requireLowercaseLetters: apiValidation.requireLowercaseLetters,\r\n requireUppercaseLetters: apiValidation.requireUppercaseLetters,\r\n requireNumbers: apiValidation.requireNumbers,\r\n requireSpecialCharacters: apiValidation.requireSpecialCharacters,\r\n allowedSpecialCharacters: apiValidation.allowedSpecialCharacters,\r\n minDateOption: apiValidation.minDateOption,\r\n minDate: apiValidation.minDate,\r\n maxDateOption: apiValidation.maxDateOption,\r\n maxDate: apiValidation.maxDate,\r\n regionBoundary: apiValidation.regionBoundary,\r\n region: apiValidation.region,\r\n preventFromProceedingWithoutAgree:\r\n apiValidation.preventFromProceedingWithoutAgree,\r\n buttonColour: apiValidation.buttonColour,\r\n maxFileSize: apiValidation.maxFileSize,\r\n minFileSize: apiValidation.minFileSize,\r\n minSelection: apiValidation.minSelection,\r\n maxSelection: apiValidation.maxSelection,\r\n fileTypes: apiValidation.fileTypes,\r\n fileSize: apiValidation.fileSize,\r\n fileSizeUnit: apiValidation.fileSizeUnit,\r\n totalFileSize: apiValidation.totalFileSize,\r\n minSelectionRequired: apiValidation.minSelectionRequired,\r\n minSelectionValue: apiValidation.minSelectionValue,\r\n validationType: apiValidation.validationType,\r\n validation: apiValidation.validation,\r\n };\r\n}\r\n\r\nfunction mapElementOptionDBToModel(apiElementOptionDB: any): ElementOptionDB {\r\n return {\r\n tableName: apiElementOptionDB.tableName,\r\n valueField: apiElementOptionDB.valueField,\r\n labelField: apiElementOptionDB.labelField,\r\n criteria: apiElementOptionDB.criteria.map((apiCriteria: any) =>\r\n mapElementOptionDBCriteriaToModel(apiCriteria)\r\n ),\r\n };\r\n}\r\n\r\nfunction mapElementOptionDBCriteriaToModel(\r\n apiElementOptionDBCriteria: any\r\n): ElementOptionDBCriteria {\r\n return {\r\n field: apiElementOptionDBCriteria.field,\r\n condition: apiElementOptionDBCriteria.condition,\r\n valueSource: apiElementOptionDBCriteria.valueSource,\r\n inputValue: apiElementOptionDBCriteria.inputValue,\r\n logicalOperator: apiElementOptionDBCriteria.logicalOperator,\r\n };\r\n}\r\n\r\nfunction mapElementOptionAPIToModel(\r\n apiElementOptionAPI: any\r\n): ElementOptionAPI {\r\n return {\r\n external: apiElementOptionAPI.external,\r\n url: apiElementOptionAPI.url,\r\n valueField: apiElementOptionAPI.valueField,\r\n labelField: apiElementOptionAPI.labelField,\r\n pathToValue: apiElementOptionAPI.pathToValue,\r\n headers: apiElementOptionAPI.headers?.map(mapElementOptionAPIDataToModel),\r\n params: apiElementOptionAPI.params?.map(mapElementOptionAPIDataToModel),\r\n pathVariables: apiElementOptionAPI.pathVariables?.map(\r\n mapElementOptionAPIDataToModel\r\n ),\r\n };\r\n}\r\n\r\nfunction mapElementOptionAPIDataToModel(\r\n apiElementOptionAPIData: any\r\n): elementOptionAPIData {\r\n return {\r\n keyName: apiElementOptionAPIData.keyName,\r\n valueSource: apiElementOptionAPIData.valueSource,\r\n inputValue: apiElementOptionAPIData.inputValue,\r\n };\r\n}\r\n\r\nfunction mapOptionToModel(apiOption: any): Option {\r\n return {\r\n optionType: apiOption?.optionType,\r\n lookupTable: apiOption?.lookupTable,\r\n customOptions: apiOption?.customOptions?.map((option: { value: any }) => ({\r\n value: option.value,\r\n })),\r\n database: apiOption?.database\r\n ? mapElementOptionDBToModel(apiOption.database)\r\n : undefined,\r\n api: apiOption?.api ? mapElementOptionAPIToModel(apiOption.api) : undefined,\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { DataService } from './data.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FormService {\r\n private apiUrl: string = '';\r\n header: any = {};\r\n\r\n constructor(private http: HttpClient, private dataService: DataService) {\r\n this.dataService.apiUrl$.subscribe((data) => {\r\n this.apiUrl = data;\r\n });\r\n\r\n this.dataService.header$.subscribe((data) => {\r\n this.header = data;\r\n });\r\n }\r\n\r\n getQuestions(moduleName: string) {\r\n return this.http.get(`${this.apiUrl}/api/public/forms/${moduleName}`);\r\n }\r\n\r\n fetchDataFromDatabase(database: any) {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.post<any>(`${this.apiUrl}/api/load-from-db`, database, {\r\n headers,\r\n });\r\n }\r\n\r\n fetchDataFromLookup(tableName: string) {\r\n return this.http.get<any>(`${this.apiUrl}/api/public/lookup/${tableName}`);\r\n }\r\n\r\n fetchDataFromExternalAPI(url: string): Observable<any> {\r\n return this.http.get<any>(url);\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss']\r\n})\r\nexport class HeaderComponent {\r\n @Input() name: string = '';\r\n}\r\n","<div class=\"head container\">\r\n <div class=\"registration-header\">\r\n <h2>{{ name }}</h2>\r\n </div>\r\n <div class=\"line\"></div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-section-fields',\r\n templateUrl: './section-fields.component.html',\r\n styleUrls: ['./section-fields.component.scss']\r\n})\r\nexport class SectionFieldsComponent {\r\n @Input() section:any={};\r\n}\r\n","<div class=\"mb-4 px-3\">\r\n <p class=\"sectionTitle\">{{ section.title }}</p>\r\n <p class=\"description\">{{ section.description }}</p>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormService } from '../../services/form.service';\r\n\r\n@Component({\r\n selector: 'lib-check-box-fields',\r\n templateUrl: './check-box-fields.component.html',\r\n styleUrls: ['./check-box-fields.component.scss'],\r\n})\r\nexport class CheckBoxFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n selectionType: string = '';\r\n minimumSelection?: number;\r\n maximumSelection?: number;\r\n optionType: string = '';\r\n lookupTable: any = {};\r\n customOptions: any[] = [];\r\n database: any = {};\r\n api: any = {};\r\n apiOptions: any[] = []; // Assuming you have a property to store API options\r\n selectedOptions: any[] = [];\r\n validationFailed: boolean = false;\r\n validationMessage: string = '';\r\n\r\n @Output() validate: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n constructor(private formService: FormService) {}\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.selectionType = this.question.formElement.appearance.selectionType;\r\n this.minimumSelection =\r\n this.question.formElement.validation.minimumSelection;\r\n this.maximumSelection =\r\n this.question.formElement.validation.maximumSelection;\r\n this.optionType = this.question.formElement.option.optionType;\r\n\r\n switch (this.optionType) {\r\n case 'OPTION':\r\n this.customOptions = this.question.formElement.option.customOptions;\r\n break;\r\n case 'LOOKUP':\r\n this.lookupTable = this.question.formElement.option.lookupTable;\r\n this.fetchDataFromLookup();\r\n break;\r\n case 'DATABASE':\r\n this.database = this.question.formElement.option.database;\r\n this.fetchDataFromDatabase();\r\n break;\r\n case 'API':\r\n this.api = this.question.formElement.option.api;\r\n this.fetchDataFromAPI();\r\n break;\r\n default:\r\n console.warn('Unknown option type:', this.optionType);\r\n }\r\n\r\n // If selectionType is 'SINGLE', set minimumSelection and maximumSelection to 1\r\n if (this.selectionType === 'SINGLE') {\r\n this.minimumSelection = 1;\r\n this.maximumSelection = 1;\r\n }\r\n\r\n // If selectionType is 'MULTIPLE' and minSelection and maxSelection are not specified, set them to undefined\r\n if (\r\n this.selectionType === 'MULTIPLE' &&\r\n !this.minimumSelection &&\r\n !this.maximumSelection\r\n ) {\r\n this.minimumSelection = undefined;\r\n this.maximumSelection = undefined;\r\n }\r\n }\r\n\r\n onCheckboxChange(option: any, event: any) {\r\n if (this.selectionType === 'SINGLE') {\r\n // Clear previously selected options for single selection type\r\n this.selectedOptions = [];\r\n }\r\n\r\n if (event.target.checked) {\r\n // Add the selected option if it's not already in the list\r\n if (!this.selectedOptions.includes(option)) {\r\n this.selectedOptions.push(option);\r\n this.isMinimumSelectionValid();\r\n }\r\n } else {\r\n // Remove the selected option\r\n this.selectedOptions = this.selectedOptions.filter(\r\n (item) => item !== option\r\n );\r\n this.isMinimumSelectionValid();\r\n }\r\n\r\n // Check if the number of selected options exceeds the maximum allowed\r\n if (\r\n this.maximumSelection !== undefined &&\r\n this.selectedOptions.length > this.maximumSelection\r\n ) {\r\n // If exceeded, uncheck the last selected option\r\n event.target.checked = false;\r\n // Remove the unchecked option from the selectedOptions array\r\n this.selectedOptions = this.selectedOptions.filter(\r\n (item) => item !== option\r\n );\r\n // You can add a message to inform the user about the maximum selection limit if needed\r\n }\r\n }\r\n\r\n fetchDataFromLookup() {\r\n this.formService.fetchDataFromLookup(this.lookupTable).subscribe(\r\n (response) => {\r\n this.customOptions = response.result.values.map(\r\n (item: { value: string; label: string }) => ({\r\n value: item.value,\r\n label: item.label,\r\n })\r\n );\r\n },\r\n (error) => {\r\n console.error('HTTP Error:', error);\r\n }\r\n );\r\n }\r\n\r\n fetchDataFromDatabase() {\r\n const transformedDatabase = this.transformDatabaseObject(this.database);\r\n this.formService.fetchDataFromDatabase(transformedDatabase).subscribe(\r\n (response) => {\r\n if (response.success) {\r\n this.customOptions = response.result.map(\r\n (item: { value: string; label: string }) => ({\r\n value: item.value,\r\n label: item.label,\r\n })\r\n );\r\n } else {\r\n console.error('Error fetching data from database:', response.message);\r\n }\r\n },\r\n (error) => {\r\n console.error('HTTP Error:', error);\r\n }\r\n );\r\n }\r\n\r\n transformDatabaseObject(database: any) {\r\n return {\r\n tableName: database.tableName,\r\n valueField: database.valueField,\r\n labelField: database.labelField,\r\n criteria: database.criteria.map((criteria: any) => ({\r\n field: criteria.field,\r\n condition: criteria.condition,\r\n value: criteria.inputValue,\r\n logicalOperator: criteria.logicalOperator,\r\n })),\r\n };\r\n }\r\n\r\n fetchDataFromAPI() {\r\n const apiConfig = this.api;\r\n this.formService.fetchDataFromExternalAPI(apiConfig.url).subscribe(\r\n (response) => {\r\n const data = this.extractDataByPath(response, apiConfig.pathToValue);\r\n this.customOptions = data.map((item: any) => ({\r\n value: item[apiConfig.valueField],\r\n label: item[apiConfig.labelField],\r\n }));\r\n },\r\n (error) => {\r\n console.error('HTTP Error:', error);\r\n }\r\n );\r\n }\r\n\r\n extractDataByPath(data: any, path: string) {\r\n return path.split('.').reduce((acc, part) => acc && acc[part], data);\r\n }\r\n\r\n isMinimumSelectionValid() {\r\n this.validationFailed = false;\r\n if (this.selectedOptions.length == 0 && this.required) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.validate.emit(this.validationFailed);\r\n } else if (this.minimumSelection !== undefined) {\r\n if (this.selectedOptions.length < this.minimumSelection) {\r\n this.validationFailed = true;\r\n this.validationMessage = `Minimum ${this.minimumSelection} selection(s) required.`;\r\n this.validate.emit(this.validationFailed);\r\n }\r\n } else {\r\n this.validate.emit(this.validationFailed);\r\n }\r\n }\r\n\r\n getOptions() {\r\n if (this.optionType === 'OPTION') {\r\n return this.customOptions;\r\n } else if (this.optionType === 'LOOKUP') {\r\n return Object.values(this.lookupTable);\r\n } else if (this.optionType === 'API') {\r\n return this.apiOptions.map((option) => option.valueField);\r\n } else {\r\n return [];\r\n }\r\n }\r\n\r\n isOptionDisabled(option: any): boolean {\r\n return (\r\n this.maximumSelection !== undefined &&\r\n this.selectedOptions.length >= this.maximumSelection &&\r\n !this.selectedOptions.includes(option)\r\n );\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper mb-2\">\r\n <label>{{ question.question }}</label\r\n > \r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"form-check\" *ngFor=\"let option of customOptions\">\r\n <input\r\n class=\"form-check-input\"\r\n type=\"checkbox\"\r\n [id]=\"option.value + 'Checkbox'\"\r\n [name]=\"option.value + 'Checkbox'\"\r\n [value]=\"option.value\"\r\n (change)=\"onCheckboxChange(option, $event)\"\r\n [disabled]=\"isOptionDisabled(option)\"\r\n [checked]=\"selectedOptions.includes(option.value)\"\r\n />\r\n <label\r\n class=\"formCheckLabel ms-2 mb-2\"\r\n [for]=\"option.value + 'Checkbox'\"\r\n *ngIf=\"optionType == 'OPTION'\"\r\n >{{ option.value }}</label\r\n >\r\n <label\r\n class=\"formCheckLabel ms-2 mb-2\"\r\n [for]=\"option.value + 'Checkbox'\"\r\n *ngIf=\"optionType == 'LOOKUP' || 'DATABASE' || 'API'\"\r\n >{{ option.label }}</label\r\n >\r\n </div>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport {\r\n BsDatepickerConfig,\r\n BsDatepickerDirective,\r\n} from 'ngx-bootstrap/datepicker';\r\n\r\n@Component({\r\n selector: 'lib-date-time-fields',\r\n templateUrl: './date-time-fields.component.html',\r\n styleUrls: ['./date-time-fields.component.scss'],\r\n})\r\nexport class DateTimeFieldsComponent {\r\n bsConfig: Partial<BsDatepickerConfig> = {\r\n containerClass: 'theme-red', // Set the container class to apply the grey theme\r\n };\r\n\r\n @Input() question: any = {};\r\n required: boolean = false;\r\n hint: string = '';\r\n count: number = 0;\r\n dateType: string = '';\r\n format: string = 'DD-MM-YYYY';\r\n minDateOption: string = '';\r\n minDate: Date | undefined; // Initialize minDate as Date or undefined\r\n maxDateOption: string = '';\r\n maxDate: Date | undefined; // Initialize maxDate as Date or undefined\r\n todayDate: Date = new Date(); // Current date\r\n selectedDate: string = '';\r\n selectedTime: string = '';\r\n selectedDateRange: string = '';\r\n selectedDateAndTime: string = '';\r\n validationFailed!: boolean;\r\n validationMessage: string = '';\r\n @ViewChild('datepickerYMD') datepicker!: BsDatepickerDirective;\r\n @ViewChild('daterangepicker') dateRangePicker!: BsDatepickerDirective;\r\n @ViewChild('dateAndTimePicker') dateAndTimePicker!: BsDatepickerDirective;\r\n\r\n @Output() validate : EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() { \r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.dateType = this.question.formElement.appearance.dateType;\r\n this.format = this.question.formElement.appearance.format;\r\n this.minDateOption = this.question.formElement.validation.minDateOption;\r\n this.minDate = this.getMinDate();\r\n this.maxDateOption = this.question.formElement.validation.maxDateOption;\r\n this.maxDate = this.getMaxDate();\r\n }\r\n\r\n getMinDate(): Date | undefined {\r\n if (this.minDateOption === 'TODAY') {\r\n return this.todayDate;\r\n } else if (this.minDateOption === 'CUSTOM') {\r\n return new Date(this.question.formElement.validation.minDate);\r\n }\r\n return undefined; // Return undefined if no valid option\r\n }\r\n\r\n getMaxDate(): Date | undefined {\r\n if (this.maxDateOption === 'TODAY') {\r\n return this.todayDate;\r\n } else if (this.maxDateOption === 'CUSTOM') {\r\n return new Date(this.question.formElement.validation.maxDate);\r\n }\r\n return undefined; // Return undefined if no valid option\r\n }\r\n\r\n openDatePicker() {\r\n this.datepicker.toggle();\r\n }\r\n\r\n openDateRangePicker() {\r\n this.dateRangePicker.toggle();\r\n }\r\n\r\n openDateAndTimePicker() {\r\n this.dateAndTimePicker.toggle();\r\n }\r\n\r\n validateField(){\r\n if(this.dateType === 'DATE_ONLY'){ \r\n this.question.answer=String(this.selectedDate);\r\n this.validateDateOnly()\r\n }\r\n else if(this.dateType === 'TIME_ONLY'){\r\n this.question.answer=String(this.selectedTime);\r\n this.validateTimeOnly()\r\n }\r\n else if(this.dateType === 'DATE_AND_TIME'){\r\n this.question.answer=String(this.selectedDateAndTime);\r\n this.validateDateAndTime()\r\n }\r\n else{\r\n this.question.answer=String(this.selectedDateRange);\r\n this.validateDateRange()\r\n }\r\n }\r\n\r\n validateDateOnly() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (this.required && !this.selectedDate) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n }\r\n validateTimeOnly() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (this.required && !this.selectedTime) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';;\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n }\r\n validateDateRange() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (this.required && !this.selectedDateRange) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n }\r\n validateDateAndTime() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (this.required && !this.selectedDateAndTime) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper\">\r\n <label>{{ question.question }}</label> \r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div class=\"svg-wrapper mb-2 hintIcon\" [attr.data-title]=\"hint\" *ngIf=\"hint\">\r\n <svg class=\"hintSvg\" viewBox=\"0 0 30 30\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n</div>\r\n <ng-container *ngIf=\"dateType === 'DATE_ONLY'\">\r\n <!-- Date only picker -->\r\n <div class=\"input-container\">\r\n <input\r\n class=\"form-control height\"\r\n #datepickerYMD=\"bsDatepicker\"\r\n bsDatepicker\r\n [minDate]=\"minDate ? minDate : todayDate\"\r\n [maxDate]=\"maxDate ? maxDate : todayDate\"\r\n [bsConfig]=\"{ dateInputFormat: format }\"\r\n [(ngModel)]=\"selectedDate\"\r\n (blur)=\"validateField()\"\r\n (ngModelChange)=\"validateField()\"\r\n [class.invalid]=\"validationFailed\"\r\n />\r\n <i class=\"fa-solid fa-calendar-days calendar-icon text-primary fs-5\" (click)=\"openDatePicker()\"></i>\r\n </div>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\r\n <svg class=\"validationSvg\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\" fill=\"#FF0000\" stroke=\"#FF0000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\r\n </svg>\r\n {{validationMessage}}</div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"dateType === 'TIME_ONLY'\">\r\n <!-- Time picker -->\r\n <input type=\"time\" class=\"form-control height\"\r\n (blur)=\"validateTimeOnly()\" \r\n [(ngModel)]=\"selectedTime\"\r\n (ngModelChange)=\"validateTimeOnly()\"\r\n [class.invalid]=\"validationFailed\"/>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\r\n <svg class=\"validationSvg\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\" fill=\"#FF0000\" stroke=\"#FF0000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\r\n </svg>\r\n {{validationMessage}}</div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"dateType === 'DATE_AND_TIME'\">\r\n <!-- Date and time picker -->\r\n <div class=\"input-container\">\r\n <input\r\n #dateAndTimePicker=\"bsDatepicker\"\r\n type=\"text\"\r\n class=\"form-control height\"\r\n [minDate]=\"minDate ? minDate : todayDate\"\r\n [maxDate]=\"maxDate ? maxDate : todayDate\"\r\n [bsConfig]=\"{\r\n withTimepicker: true,\r\n keepDatepickerOpened: true,\r\n rangeInputFormat: format,\r\n dateInputFormat: format\r\n }\"\r\n bsDatepicker\r\n [class.invalid]=\"validationFailed\"\r\n [(ngModel)]=\"selectedDateAndTime\"\r\n (blur)=\"validateField()\"\r\n (ngModelChange)=\"validateField()\"\r\n />\r\n <i class=\"fa-solid fa-calendar-days calendar-icon text-primary fs-5\" (click)=\"openDateAndTimePicker()\"></i>\r\n </div>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\r\n <svg class=\"validationSvg\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\" fill=\"#FF0000\" stroke=\"#FF0000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\r\n </svg>\r\n {{validationMessage}}</div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"dateType === 'DATE_RANGE'\">\r\n <!-- Date range picker -->\r\n <div class=\"input-container\">\r\n <input\r\n type=\"text\"\r\n class=\"form-control height\"\r\n #daterangepicker=\"bsDaterangepicker\"\r\n bsDaterangepicker\r\n [minDate]=\"minDate ? minDate : todayDate\"\r\n [maxDate]=\"maxDate ? maxDate : todayDate\"\r\n [bsConfig]=\"{\r\n rangeInputFormat: format,\r\n dateInputFormat: format,\r\n showWeekNumbers: false\r\n }\"\r\n [(ngModel)]=\"selectedDateRange\"\r\n (blur)=\"validateField()\"\r\n (ngModelChange)=\"validateField()\"\r\n [class.invalid]=\"validationFailed\"\r\n />\r\n <i class=\"fa-solid fa-calendar-days calendar-icon text-primary fs-5\" (click)=\"openDateRangePicker()\"></i>\r\n </div>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\r\n <svg class=\"validationSvg\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\" fill=\"#FF0000\" stroke=\"#FF0000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\r\n </svg>\r\n {{validationMessage}}</div>\r\n </ng-container>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormService } from '../../services/form.service';\r\n\r\ninterface DropDownData {\r\n value: string;\r\n label: string;\r\n image: string;\r\n}\r\n\r\n@Component({\r\n selector: 'lib-drop-down-fields',\r\n templateUrl: './drop-down-fields.component.html',\r\n styleUrls: ['./drop-down-fields.component.scss'],\r\n})\r\nexport class DropDownFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n selectionType: string = '';\r\n minimumSelection: number = 0;\r\n maximumSelection: number = 0;\r\n optionType: string = '';\r\n lookupTable: string = '';\r\n customOptions: DropDownData[] = [];\r\n database: any = {};\r\n api: any = {};\r\n selectedValue: any[] = [];\r\n validationFailed!: boolean;\r\n validationMessage: string = '';\r\n\r\n @Output() validate: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n constructor(private formService: FormService) { }\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n onValueChange(newValue: any) {\r\n this.selectedValue = newValue;\r\n this.selectItems();\r\n }\r\n\r\n valueAssigned() {\r\n console.log('Question',this.question);\r\n \r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.selectionType = this.question.formElement.appearance.selectionType;\r\n this.minimumSelection =\r\n this.question.formElement.validation.minimumSelection;\r\n this.maximumSelection =\r\n this.question.formElement.validation.maximumSelection;\r\n this.optionType = this.question.formElement.option.optionType;\r\n\r\n switch (this.optionType) {\r\n case 'OPTION':\r\n this.customOptions = this.question.formElement.option.customOptions.map(\r\n (option: { value: string }) => ({\r\n label: option.value,\r\n value: '',\r\n image: '',\r\n })\r\n );\r\n break;\r\n case 'LOOKUP':\r\n this.lookupTable = this.question.formElement.option.lookupTable;\r\n this.fetchDataFromLookup();\r\n break;\r\n case 'DATABASE':\r\n this.database = this.question.formElement.option.database;\r\n this.fetchDataFromDatabase();\r\n break;\r\n case 'API':\r\n this.api = this.question.formElement.option.api;\r\n this.fetchDataFromAPI();\r\n break;\r\n default:\r\n console.warn('Unknown option type:', this.optionType);\r\n }\r\n }\r\n\r\n transformDatabaseObject(database: any) {\r\n return {\r\n tableName: database.tableName,\r\n valueField: database.valueField,\r\n labelField: database.labelField,\r\n criteria: database.criteria.map((criteria: any) => ({\r\n field: criteria.field,\r\n condition: criteria.condition,\r\n value: criteria.inputValue,\r\n logicalOperator: criteria.logicalOperator,\r\n })),\r\n };\r\n }\r\n\r\n fetchDataFromDatabase() {\r\n const transformedDatabase = this.transformDatabaseObject(this.database);\r\n this.formService.fetchDataFromDatabase(transformedDatabase).subscribe(\r\n (response) => {\r\n if (response.success) {\r\n this.customOptions = response.result.map(\r\n (item: { value: string; label: string }) => ({\r\n value: item.value,\r\n label: item.label,\r\n })\r\n );\r\n } else {\r\n console.error('Error fetching data from database:', response.message);\r\n }\r\n },\r\n (error) => {\r\n console.error('HTTP Error:', error);\r\n }\r\n );\r\n }\r\n\r\n fetchDataFromLookup() {\r\n this.formService.fetchDataFromLookup(this.lookupTable).subscribe(\r\n (response) => {\r\n this.customOptions = response.result.values.map(\r\n (item: { value: string; label: string }) => ({\r\n value: item.value,\r\n label: item.label,\r\n })\r\n );\r\n },\r\n (error) => {\r\n console.error('HTTP Error:', error);\r\n }\r\n );\r\n }\r\n\r\n fetchDataFromAPI() {\r\n const apiConfig = this.api;\r\n this.formService.fetchDataFromExternalAPI(apiConfig.url).subscribe(\r\n (response) => {\r\n const data = this.extractDataByPath(response, apiConfig.pathToValue);\r\n this.customOptions = data.map((item: any) => ({\r\n value: item[apiConfig.valueField],\r\n label: item[apiConfig.labelField],\r\n }));\r\n },\r\n (error) => {\r\n console.error('HTTP Error:', error);\r\n }\r\n );\r\n }\r\n\r\n extractDataByPath(data: any, path: string) {\r\n return path.split('.').reduce((acc, part) => acc && acc[part], data);\r\n }\r\n\r\n selectItems() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (this.selectedValue.length == 0 && this.required) {\r\n this.validationFailed = true;\r\n this.validationMessage = `This is a required question`;\r\n this.validate.emit(this.validationFailed);\r\n } else if (\r\n this.selectedValue.length < this.minimumSelection ||\r\n this.selectedValue.length > this.maximumSelection\r\n ) {\r\n this.validationFailed = true;\r\n this.validationMessage = `selected options must be between ${this.minimumSelection} & ${this.maximumSelection}`;\r\n this.validate.emit(this.validationFailed);\r\n }\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-3\">\r\n <div class=\"input-wrapper\">\r\n <label>{{ question.question }}</label\r\n > \r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <lib-dropdown\r\n [items]=\"customOptions\"\r\n [multiple]=\"selectionType === 'SINGLE' ? false : true\"\r\n ></lib-dropdown>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger mb-2\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-file-picker-fields',\r\n templateUrl: './file-picker-fields.component.html',\r\n styleUrls: ['./file-picker-fields.component.scss'],\r\n})\r\nexport class FilePickerFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n multiFileUploads: boolean = true;\r\n fileTypes: string[] = [];\r\n fileSize: number = 0;\r\n fileSizeUnit: string = '';\r\n totalFileSize: number = 0;\r\n\r\n dragAndDrop: boolean = true;\r\n previewUploadedFiles: boolean = true;\r\n validationFailed:boolean=false;\r\n validationMessage:string='';\r\n\r\n handleFileTypeNotAllowed(fileType: string): void {\r\n console.log(`File type not allowed in app: ${fileType}`);\r\n this.validationFailed=true;\r\n this.validationMessage='File type not allowed';\r\n }\r\n handleFileSize(fileType: string): void {\r\n console.log(`maximum limit app: ${fileType}`);\r\n }\r\n handleFinalArray(fileType: any[]): void {\r\n const extractedData = fileType.map((item: any) => ({\r\n name: item._file.name,\r\n size: item._file.size,\r\n type: item._file.type,\r\n }));\r\n const jsonString = JSON.stringify(extractedData);\r\n }\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned(){\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.multiFileUploads =\r\n this.question.formElement.appearance.multiFileUploads;\r\n this.dragAndDrop = this.question.formElement.appearance.dragAndDrop;\r\n this.previewUploadedFiles =\r\n this.question.formElement.appearance.previewUploadedFiles;\r\n this.fileTypes = this.question.formElement.validation.fileTypes;\r\n this.fileSizeUnit = this.question.formElement.validation.fileSizeUnit;\r\n\r\n this.fileSize = this.convertToBytes(\r\n this.question.formElement.validation.fileSize,\r\n this.fileSizeUnit\r\n );\r\n if (this.multiFileUploads) {\r\n this.totalFileSize = this.convertToBytes(\r\n this.question.formElement.validation.totalFileSize,\r\n this.fileSizeUnit\r\n );\r\n } else {\r\n this.totalFileSize = this.fileSize;\r\n }\r\n }\r\n\r\n convertToBytes(size: number, unit: string): number {\r\n const units: { [key: string]: number } = {\r\n B: 1,\r\n KB: 1024,\r\n MB: 1024 * 1024,\r\n GB: 1024 * 1024 * 1024,\r\n };\r\n return size * (units[unit.toUpperCase()] || 1);\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\r\n <div class=\"input-wrapper\">\r\n <label>{{ question.question }}</label\r\n > \r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <lib-docUpload\r\n [totalSize]=\"totalFileSize\"\r\n [fileAllowed]=\"fileTypes\"\r\n [multiple]=\"multiFileUploads\"\r\n (fileTypeNotAllowed)=\"handleFileTypeNotAllowed($event)\"\r\n (fileSizeAllowed)=\"handleFileSize($event)\"\r\n (finalArray)=\"handleFinalArray($event)\"\r\n ></lib-docUpload>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg class=\"validationSvg\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\" fill=\"#FF0000\" stroke=\"#FF0000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\r\n </svg>\r\n {{validationMessage}}</div>\r\n</div>\r\n","import { Component, Input, ViewChild, ElementRef } from '@angular/core';\r\nimport { GoogleMap } from '@angular/google-maps';\r\n\r\n@Component({\r\n selector: 'lib-location-fields',\r\n templateUrl: './location-fields.component.html',\r\n styleUrls: ['./location-fields.component.scss'],\r\n})\r\nexport class LocationFieldsComponent {\r\n @Input() question: any = {};\r\n @ViewChild('mapSearchField')\r\n searchField!: ElementRef;\r\n @ViewChild(GoogleMap) map!: GoogleMap;\r\n\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n defaultZoomLevel: number = 0;\r\n setCurrentPosition: boolean = false;\r\n allowFullScreen: boolean = false;\r\n latitude: number = 0;\r\n longitude: number = 0;\r\n regionBoundary: boolean = false;\r\n region: string = '';\r\n showGoogleMap!: boolean;\r\n mapConfigurations: any = {};\r\n\r\n ngOnInit() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.defaultZoomLevel =\r\n this.question.formElement.appearance.defaultZoomLevel;\r\n this.setCurrentPosition =\r\n this.question.formElement.appearance.setCurrentPosition;\r\n this.allowFullScreen = this.question.formElement.appearance.allowFullScreen;\r\n this.latitude = this.question.formElement.appearance.latitude;\r\n this.longitude = this.question.formElement.appearance.longitude;\r\n this.regionBoundary = this.question.formElement.validation.regionBoundary;\r\n this.region = this.question.formElement.validation.region;\r\n this.mapConfigurations = {\r\n disableDefaultUI: true,\r\n fullscreenControl: this.allowFullScreen,\r\n zoomControl: true,\r\n };\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const searchBox = new google.maps.places.SearchBox(\r\n this.searchField.nativeElement\r\n );\r\n\r\n this.map.controls[google.maps.ControlPosition.TOP_CENTER].push(\r\n this.searchField.nativeElement\r\n );\r\n\r\n searchBox.addListener('places_changed', () => {\r\n const places = searchBox.getPlaces();\r\n if (places?.length === 0) {\r\n return;\r\n }\r\n\r\n const bounds = new google.maps.LatLngBounds();\r\n places?.forEach((place) => {\r\n if (!place.geometry || !place.geometry.location) {\r\n return;\r\n }\r\n\r\n if (place.geometry.viewport) {\r\n // Only geocodes have viewport.\r\n bounds.union(place.geometry.viewport);\r\n } else {\r\n bounds.extend(place.geometry.location);\r\n }\r\n });\r\n\r\n this.map.fitBounds(bounds);\r\n });\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\r\n <div class=\"input-wrapper\">\r\n <label>{{ question.question }}</label> \r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div class=\"svg-wrapper mb-2 hintIcon\" [attr.data-title]=\"hint\" *ngIf=\"hint\">\r\n <svg class=\"hintSvg\" viewBox=\"0 0 30 30\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n</div>\r\n <div class=\"input-group\">\r\n <input\r\n type=\"text\"\r\n class=\"form-control location-input\"\r\n placeholder=\"Enter location\"\r\n #locationInput\r\n />\r\n </div>\r\n\r\n <input #mapSearchField class=\"my-map-search-field\" type=\"text\"/>\r\n <google-map\r\n width=\"100%\"\r\n [options]=\"mapConfigurations\"\r\n ></google-map>\r\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-mail-fields',\r\n templateUrl: './mail-fields.component.html',\r\n styleUrls: ['./mail-fields.component.scss'],\r\n})\r\nexport class MailFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n placeholder: string = '';\r\n expectedDomains: string[] = [];\r\n regularExpression: string = '';\r\n email: string = '';\r\n validationFailed: boolean = false;\r\n validationMessage: string = '';\r\n\r\n @Output() validate: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.placeholder = this.question.formElement.appearance.placeholder;\r\n this.expectedDomains =\r\n this.question?.formElement?.validation?.expectedDomains\r\n ?.split(',')\r\n .map((domain: any) => domain.trim());\r\n this.regularExpression =\r\n this.question.formElement.validation.regularExpression;\r\n }\r\n\r\n validateEmail() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n const enteredEmail = this.email.trim().toLowerCase();\r\n if (this.required && !this.email) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.validate.emit(this.validationFailed);\r\n this.question.validation = false;\r\n } else if (this.expectedDomains) {\r\n const isValidEmail = this.expectedDomains?.some((domain) =>\r\n enteredEmail.endsWith(domain)\r\n );\r\n this.validationFailed = !isValidEmail;\r\n this.validationMessage = 'Please enter valid email address';\r\n if (this.validationFailed) {\r\n this.validate.emit(this.validationFailed);\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n }\r\n validateInput(event: any) {\r\n this.question.answer = event.target.value;\r\n this.validateEmail();\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\r\n <div class=\"input-wrapper\">\r\n <label>{{ question.question }}</label> \r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div class=\"svg-wrapper mb-2 hintIcon\" [attr.data-title]=\"hint\" *ngIf=\"hint\">\r\n <svg class=\"hintSvg\" viewBox=\"0 0 30 30\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n</div>\r\n <input\r\n type=\"email\"\r\n class=\"form-control mb-2 height\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"email\"\r\n (blur)=\"validateEmail()\"\r\n (input)=\"validateInput($event)\"\r\n [class.invalid]=\"validationFailed\"\r\n />\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg class=\"validationSvg\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\" fill=\"#FF0000\" stroke=\"#FF0000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\r\n </svg>\r\n {{validationMessage}}</div>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DataService } from './data.service';\r\n\r\ninterface CountryData {\r\n value: string;\r\n label: string;\r\n image: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CountryService {\r\n private apiUrl: string = '';\r\n header: any = {};\r\n\r\n constructor(private http: HttpClient, private dataService: DataService) {\r\n this.dataService.apiUrl$.subscribe((data) => {\r\n this.apiUrl = data;\r\n });\r\n }\r\n\r\n loadCountryDetails(): Observable<any> {\r\n return this.http.get<any>(`${this.apiUrl}/api/public/json/country`);\r\n }\r\n\r\n processCountryDetails(\r\n data: any[],\r\n displayFlag: boolean,\r\n displayCode: boolean,\r\n showCountryName: boolean\r\n ): CountryData[] {\r\n const countryDetails: CountryData[] = [];\r\n\r\n data.forEach((country) => {\r\n const name = showCountryName ? country.name || '' : '';\r\n let flag = '';\r\n if (displayFlag && country.flag) {\r\n flag = country.flag;\r\n }\r\n\r\n if (\r\n displayCode &&\r\n country.isd &&\r\n country.isd.root &&\r\n country.isd.suffixes?.length > 0\r\n ) {\r\n country.isd.suffixes.forEach((suffix: string) => {\r\n const isdCode = `${country.isd.root}${suffix}`;\r\n countryDetails.push({\r\n value: isdCode,\r\n label: `${name} ${isdCode}`,\r\n image: flag,\r\n });\r\n });\r\n } else if (displayCode) {\r\n countryDetails.push({\r\n value: name,\r\n label: country.isd?.root || '',\r\n image: flag,\r\n });\r\n } else if (!displayCode && !displayFlag) {\r\n countryDetails.push({\r\n value: name,\r\n label: '',\r\n image: '',\r\n });\r\n }\r\n });\r\n\r\n return countryDetails;\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output, OnInit} from '@angular/core';\r\nimport { CountryService } from '../../services/countryService';\r\n\r\ninterface CountryData {\r\n value: string;\r\n label: string;\r\n image: string;\r\n}\r\n\r\ninterface filteredCountry{\r\n name:string;\r\n flag: string;\r\n isd:{};\r\n languages:{};\r\n}\r\n\r\n@Component({\r\n selector: 'lib-mobile-fields',\r\n templateUrl: './mobile-fields.component.html',\r\n styleUrls: ['./mobile-fields.component.scss'],\r\n})\r\nexport class MobileFieldsComponent implements OnInit{\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n placeholder: string = '';\r\n displayCountryCode: boolean = true;\r\n displayFlag: boolean = true;\r\n displayCode: boolean = true;\r\n showCountryName: boolean = true;\r\n beautifyNumbers: boolean = true;\r\n countryWiseValidation: boolean = true;\r\n restrictCountry: boolean = true;\r\n allowedCountry: string[] = [];\r\n blockedCountry: string[] = [];\r\n countryDetails: CountryData[] = [];\r\n selectedCountry:CountryData[]=[];\r\n validationFailed:boolean=false;\r\n validationMessage:string='';\r\n mobileNumber:string='';\r\n filteredCountry:filteredCountry[]=[];\r\n\r\n @Output() validate : EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n constructor(private countryService: CountryService) {}\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.placeholder = this.question.formElement.appearance.placeholder;\r\n this.displayCountryCode =\r\n this.question.formElement.appearance.displayCountryCode;\r\n this.displayFlag = this.question.formElement.appearance.displayFlag;\r\n this.displayCode = this.question.formElement.appearance.displayCode;\r\n this.showCountryName = this.question.formElement.appearance.showCountryName;\r\n this.beautifyNumbers = this.question.formElement.appearance.beautifyNumbers;\r\n this.countryWiseValidation =\r\n this.question.formElement.validation.countryWiseValidation;\r\n this.restrictCountry = this.question.formElement.validation.restrictCountry;\r\n \r\n this.allowedCountry = this.question.formElement.validation.allowedCountry;\r\n \r\n this.blockedCountry = this.question.formElement.validation.blockedCountry;\r\n \r\n\r\n this.countryService.loadCountryDetails().subscribe((data) => {\r\n this.filteredCountry=data.result;\r\n if(this.restrictCountry && ( this.allowedCountry || this.blockedCountry )){\r\n this.filteredCountry = this.filteredCountry.filter(country =>{ \r\n return (this.allowedCountry.includes(country.name) || !this.blockedCountry.includes(country.name))\r\n });\r\n }\r\n this.countryDetails = this.countryService.processCountryDetails(\r\n this.filteredCountry,\r\n this.displayFlag,\r\n this.displayCode,\r\n this.showCountryName\r\n );\r\n });\r\n }\r\n\r\n validateMobile(){\r\n this.validationFailed = false; \r\n this.validationMessage = '';\r\n if(this.required && (!this.mobileNumber || this.selectedCountry.length===0)){\r\n this.validationFailed=true;\r\n this.validationMessage='This is a required question';\r\n this.validate.emit(this.validationFailed);\r\n }\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\r\n <div class=\"input-wrapper\">\r\n <label>{{ question.question }}</label> \r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div class=\"svg-wrapper mb-2 hintIcon\" [attr.data-title]=\"hint\" *ngIf=\"hint\">\r\n <svg class=\"hintSvg\" viewBox=\"0 0 30 30\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n</div>\r\n <div class=\"input-group mb-2\">\r\n <div class=\"col-xs-5 col-5 col-md-3 px-0 pe-2\">\r\n <lib-dropdown\r\n [items]=\"countryDetails\"\r\n [multiple] = \"false\"\r\n [(selectedItems)]=\"selectedCountry\"></lib-dropdown>\r\n </div>\r\n <input\r\n type=\"number\"\r\n class=\"form-control col-xs-7 col-7 col-md-9 height mobileField\" \r\n [placeholder]=\"placeholder\"\r\n aria-label=\"Mobile Number\"\r\n [class.invalid]=\"validationFailed\"\r\n (blur)=\"validateMobile()\"\r\n [(ngModel)]=\"mobileNumber\"\r\n />\r\n </div>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg class=\"validationSvg\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\" fill=\"#FF0000\" stroke=\"#FF0000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\r\n </svg>\r\n {{validationMessage}}</div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-number-fields',\r\n templateUrl: './number-fields.component.html',\r\n styleUrls: ['./number-fields.component.scss'],\r\n})\r\nexport class NumberFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n upDown!: boolean;\r\n allowNegativeValues!: boolean;\r\n placeholder: any;\r\n min!: number;\r\n max!: number;\r\n enteredNumber!: number;\r\n validationFailed: boolean = false;\r\n validationMessage: string = '';\r\n\r\n @Output() validate : EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.upDown = this.question.formElement.appearance.upAndDownButton;\r\n this.allowNegativeValues =\r\n this.question.formElement.appearance.allowNegativeValues;\r\n this.placeholder = this.question.formElement.appearance.placeholder;\r\n this.min = this.question.formElement.validation.min;\r\n this.max = this.question.formElement.validation.max;\r\n }\r\n validateNumber() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (this.required && !this.enteredNumber) {\r\n this.validationFailed = true;\r\n this.validationMessage = `Please enter a valid number`;\r\n this.validate.emit(this.validationFailed);\r\n } else if (!this.allowNegativeValues && this.enteredNumber < 0) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'Please enter a positive number';\r\n this.validate.emit(this.validationFailed);\r\n } else if (this.enteredNumber < this.min || this.enteredNumber > this.max) {\r\n this.validationFailed = true;\r\n this.validationMessage = `Please enter a valid number between ${this.min} and ${this.max}`;\r\n this.validate.emit(this.validationFailed);\r\n }\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\r\n <div class=\"input-wrapper\">\r\n <label>{{ question.question }}</label> \r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div class=\"svg-wrapper mb-2 hintIcon\" [attr.data-title]=\"hint\" *ngIf=\"hint\">\r\n <svg class=\"hintSvg\" viewBox=\"0 0 30 30\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n</div>\r\n <input\r\n type=\"number\"\r\n class=\"form-control mb-2 height\"\r\n [placeholder]=\"placeholder\"\r\n [class.hide-spin-buttons]=\"!upDown\"\r\n (blur)=\"validateNumber()\"\r\n [(ngModel)]=\"enteredNumber\"\r\n [class.invalid]=\"validationFailed\"\r\n />\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg class=\"validationSvg\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\" fill=\"#FF0000\" stroke=\"#FF0000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\r\n </svg>\r\n {{validationMessage}}</div>\r\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-password-fields',\r\n templateUrl: './password-fields.component.html',\r\n styleUrls: ['./password-fields.component.scss'],\r\n})\r\nexport class PasswordFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n confirmPassword!: boolean;\r\n displayStrength!: boolean;\r\n viewButton!: boolean;\r\n maxLength!: number;\r\n minLength!: number;\r\n requireLowercaseLetters!: boolean;\r\n requireUppercaseLetters!: boolean;\r\n requireNumbers!: boolean;\r\n requireSpecialCharacters!: boolean;\r\n allowedSpecialCharacters: string[] = [];\r\n validationMessage: string = '';\r\n cnfrmValidationMessage: string = '';\r\n validationFailed: boolean = false;\r\n validatedCnfrmPassword: boolean = false;\r\n enteredPassowrd: string = '';\r\n enteredCnfrmPassword: string = '';\r\n passwordStrength: number = 0;\r\n\r\n @Output() validate : EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.confirmPassword = this.question.formElement.appearance.confirmPassword;\r\n this.displayStrength = this.question.formElement.appearance.displayStrong;\r\n this.viewButton = this.question.formElement.appearance.viewButton;\r\n this.maxLength = this.question.formElement.validation.maxLength;\r\n this.minLength = this.question.formElement.validation.minLength;\r\n this.requireLowercaseLetters =\r\n this.question.formElement.validation.requireLowercaseLetters;\r\n this.requireUppercaseLetters =\r\n this.question.formElement.validation.requireUppercaseLetters;\r\n this.requireNumbers = this.question.formElement.validation.requireNumbers;\r\n this.requireSpecialCharacters =\r\n this.question.formElement.validation.requireSpecialCharacters;\r\n if (this.requireSpecialCharacters) {\r\n this.allowedSpecialCharacters =\r\n this.question.formElement.validation.allowedSpecialCharacters\r\n .split(',')\r\n .map((char: any) => char.trim());\r\n }\r\n }\r\n\r\n togglePasswordVisibility() {\r\n let passwordField = document.getElementById(\r\n 'passwordField'\r\n ) as HTMLInputElement;\r\n let eyeIcon = document.getElementById(\r\n 'passwordEyeIcon'\r\n ) as HTMLInputElement;\r\n\r\n if (passwordField.type === 'password') {\r\n passwordField.type = 'text';\r\n eyeIcon.classList.remove('fa-eye');\r\n eyeIcon.classList.add('fa-eye-slash');\r\n } else {\r\n passwordField.type = 'password';\r\n eyeIcon.classList.remove('fa-eye-slash');\r\n eyeIcon.classList.add('fa-eye');\r\n }\r\n }\r\n toggleCnfrmPasswordVisibility() {\r\n let passwordField = document.getElementById(\r\n 'cnfrmPasswordField'\r\n ) as HTMLInputElement;\r\n let eyeIcon = document.getElementById(\r\n 'CnfrmPasswordEyeIcon'\r\n ) as HTMLInputElement;\r\n\r\n if (passwordField.type === 'password') {\r\n passwordField.type = 'text';\r\n eyeIcon.classList.remove('fa-eye');\r\n eyeIcon.classList.add('fa-eye-slash');\r\n } else {\r\n passwordField.type = 'password';\r\n eyeIcon.classList.remove('fa-eye-slash');\r\n eyeIcon.classList.add('fa-eye');\r\n }\r\n }\r\n\r\n checkPasswordMatch() {\r\n this.validatedCnfrmPassword = false;\r\n this.cnfrmValidationMessage = '';\r\n if (this.required && this.confirmPassword && !this.enteredCnfrmPassword) {\r\n this.validatedCnfrmPassword = true;\r\n this.cnfrmValidationMessage = `Please enter a valid password`;\r\n }\r\n if (this.enteredPassowrd != this.enteredCnfrmPassword && this.confirmPassword) {\r\n this.validatedCnfrmPassword = true;\r\n this.cnfrmValidationMessage = 'Passwords do not match';\r\n }\r\n }\r\n\r\n validatePassword() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (this.required && !this.enteredPassowrd) {\r\n this.validationFailed = true;\r\n this.validationMessage = `Please enter a valid password`;\r\n this.question.validation=false;\r\n this.validate.emit(this.validationFailed);\r\n } else if (\r\n this.requireLowercaseLetters ||\r\n this.requireUppercaseLetters ||\r\n this.requireNumbers ||\r\n this.requireSpecialCharacters\r\n ) {\r\n const lowercaseRegex = /[a-z]/;\r\n const uppercaseRegex = /[A-Z]/;\r\n const numberRegex = /\\d/;\r\n let lowerCaseValidate = lowercaseRegex.test(this.enteredPassowrd);\r\n let upperCaseValidate = uppercaseRegex.test(this.enteredPassowrd);\r\n let containsNumber = numberRegex.test(this.enteredPassowrd);\r\n let containsSpecialCharacter = this.allowedSpecialCharacters.some(\r\n (char: string) => this.enteredPassowrd.includes(char)\r\n );\r\n if (!lowerCaseValidate && this.requireLowercaseLetters) {\r\n this.validationFailed = true;\r\n this.validationMessage =\r\n 'Password must contain at least one lowercase letter';\r\n this.validate.emit(this.validationFailed);\r\n this.question.validation=false;\r\n } else if (!upperCaseValidate && this.requireUppercaseLetters) {\r\n this.validationFailed = true;\r\n this.validationMessage =\r\n 'Password must contain at least one uppercase letter';\r\n this.validate.emit(this.validationFailed);\r\n this.question.validation=false;\r\n } else if (!containsNumber && this.requireNumbers) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'Password must contain at least one number';\r\n this.validate.emit(this.validationFailed);\r\n this.question.validation=false;\r\n } else if (!containsSpecialCharacter && this.requireSpecialCharacters) {\r\n this.validationFailed = true;\r\n this.validationMessage =\r\n 'Password must contain at least one special character';\r\n this.question.validation=false;\r\n this.validate.emit(this.validationFailed);\r\n } else if (\r\n this.enteredPassowrd.length < this.minLength ||\r\n this.enteredPassowrd.length > this.maxLength\r\n ) {\r\n this.validationFailed = true;\r\n this.validationMessage = `Password must be between ${this.minLength} and ${this.maxLength} characters long`;\r\n this.validate.emit(this.validationFailed);\r\n this.question.validation=false;\r\n }\r\n else{\r\n this.question.validation=true;\r\n }\r\n const lengthStrength = Math.min(\r\n 100,\r\n Math.max(\r\n 0,\r\n ((this.enteredPassowrd.length - this.minLength) /\r\n (this.maxLength - this.minLength)) *\r\n 100\r\n )\r\n );\r\n const uppercaseStrength = upperCaseValidate ? 20 : 0;\r\n const lowercaseStrength = lowerCaseValidate ? 20 : 0;\r\n const numberStrength = containsNumber ? 20 : 0;\r\n this.passwordStrength =\r\n lengthStrength + uppercaseStrength + lowercaseStrength + numberStrength;\r\n }\r\n else{\r\n this.question.validation=true;\r\n }\r\n }\r\n\r\n validateInput(event:any){\r\n this.question.answer=event.target.value;\r\n this.validatePassword(); \r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\r\n <div class=\"password-input-wrapper\">\r\n <div class=\"input-wrapper\">\r\n <label for=\"passwordField\">{{ question.question }}</label> \r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div class=\"svg-wrapper mb-2 hintIcon\" [attr.data-title]=\"hint\" *ngIf=\"hint\">\r\n <svg class=\"hintSvg\" viewBox=\"0 0 30 30\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n <input\r\n type=\"password\"\r\n class=\"form-control mb-2 height\"\r\n id=\"passwordField\"\r\n (blur)=\"validatePassword()\"\r\n [(ngModel)]=\"enteredPassowrd\"\r\n [class.invalid]=\"validationFailed\"\r\n (input)=\"validateInput($event)\"\r\n />\r\n <button id=\"togglePasswordBtn\" class=\"toggle-password-btn\" (click)=\"togglePasswordVisibility()\">\r\n <i class=\"fa fa-eye\" id=\"passwordEyeIcon\"></i>\r\n </button>\r\n </div>\r\n <div class=\"password-strength-meter\" *ngIf=\"displayStrength\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n role=\"progressbar\"\r\n [style.width]=\"passwordStrength + '%'\"\r\n [class.bg-danger]=\"passwordStrength < 30\"\r\n [class.bg-warning]=\"passwordStrength >= 30 && passwordStrength < 70\"\r\n [class.bg-success]=\"passwordStrength >= 70\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger mb-2\">\r\n <svg class=\"validationSvg\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\" fill=\"#FF0000\" stroke=\"#FF0000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\r\n </svg>\r\n {{validationMessage}}</div>\r\n \r\n <div class=\"cnfrmPasswordWrapper\" *ngIf=\"confirmPassword\">\r\n <label for=\"cnfrmPasswordField\">Confirm password</label>\r\n <input type=\"password\" class=\"form-control mb-2 height\" id=\"cnfrmPasswordField\"\r\n (blur)=\"checkPasswordMatch()\"\r\n [(ngModel)]=\"enteredCnfrmPassword\"\r\n [class.invalid]=\"validatedCnfrmPassword\">\r\n <button id=\"toggleCnfrmPasswordBtn\" class=\"toggle-password-btn\" (click)=\"toggleCnfrmPasswordVisibility()\">\r\n <i class=\"fa fa-eye\" id=\"CnfrmPasswordEyeIcon\"></i>\r\n </button>\r\n </div>\r\n <div *ngIf=\"validatedCnfrmPassword\" class=\"text-danger\">\r\n <svg class=\"validationSvg\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\" fill=\"#FF0000\" stroke=\"#FF0000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\r\n </svg>\r\n {{cnfrmValidationMessage}}</div>\r\n \r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormService } from '../../services/form.service';\r\n\r\n@Component({\r\n selector: 'lib-radio-button-fields',\r\n templateUrl: './radio-button-fields.component.html',\r\n styleUrls: ['./radio-button-fields.component.scss'],\r\n})\r\nexport class RadioButtonFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n color: string = '';\r\n minimumSelection: number = 0;\r\n maximumSelection: number = 0;\r\n optionType: string = '';\r\n lookupTable: string = '';\r\n customOptions: any[] = [];\r\n database: any = {};\r\n api: any = {};\r\n apiOptions: any[] = []; // Assuming you have a property to store API options\r\n selectedOption:string='';\r\n validationFailed!:boolean;\r\n validationMessage:string='';\r\n\r\n @Output() validate : EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n constructor(private formService: FormService) {}\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.color = this.question.formElement.appearance.color;\r\n this.optionType = this.question.formElement.option.optionType;\r\n\r\n switch (this.optionType) {\r\n case 'OPTION':\r\n this.customOptions = this.question.formElement.option.customOptions;\r\n break;\r\n case 'LOOKUP':\r\n this.lookupTable = this.question.formElement.option.lookupTable;\r\n this.fetchDataFromLookup();\r\n break;\r\n case 'DATABASE':\r\n this.database = this.question.formElement.option.database;\r\n this.fetchDataFromDatabase();\r\n break;\r\n case 'API':\r\n this.api = this.question.formElement.option.api;\r\n this.fetchDataFromAPI();\r\n break;\r\n default:\r\n console.warn('Unknown option type:', this.optionType);\r\n }\r\n }\r\n\r\n fetchDataFromLookup() {\r\n this.formService.fetchDataFromLookup(this.lookupTable).subscribe(\r\n (response) => {\r\n this.customOptions = response.result.values.map(\r\n (item: { value: string; label: string }) => ({\r\n value: item.value,\r\n label: item.label,\r\n })\r\n );\r\n },\r\n (error) => {\r\n console.error('HTTP Error:', error);\r\n }\r\n );\r\n }\r\n\r\n fetchDataFromDatabase() {\r\n const transformedDatabase = this.transformDatabaseObject(this.database);\r\n this.formService.fetchDataFromDatabase(transformedDatabase).subscribe(\r\n (response) => {\r\n if (response.success) {\r\n this.customOptions = response.result.map(\r\n (item: { value: string; label: string }) => ({\r\n value: item.value,\r\n label: item.label,\r\n })\r\n );\r\n } else {\r\n console.error('Error fetching data from database:', response.message);\r\n }\r\n },\r\n (error) => {\r\n console.error('HTTP Error:', error);\r\n }\r\n );\r\n }\r\n\r\n transformDatabaseObject(database: any) {\r\n return {\r\n tableName: database.tableName,\r\n valueField: database.valueField,\r\n labelField: database.labelField,\r\n criteria: database.criteria.map((criteria: any) => ({\r\n field: criteria.field,\r\n condition: criteria.condition,\r\n value: criteria.inputValue,\r\n logicalOperator: criteria.logicalOperator,\r\n })),\r\n };\r\n }\r\n\r\n fetchDataFromAPI() {\r\n const apiConfig = this.api;\r\n this.formService.fetchDataFromExternalAPI(apiConfig.url).subscribe(\r\n (response) => {\r\n const data = this.extractDataByPath(response, apiConfig.pathToValue);\r\n this.customOptions = data.map((item: any) => ({\r\n value: item[apiConfig.valueField],\r\n label: item[apiConfig.labelField],\r\n }));\r\n },\r\n (error) => {\r\n console.error('HTTP Error:', error);\r\n }\r\n );\r\n }\r\n\r\n extractDataByPath(data: any, path: string) {\r\n return path.split('.').reduce((acc, part) => acc && acc[part], data);\r\n }\r\n\r\n validateInput(){\r\n this.validationFailed=false;\r\n this.validationMessage='';\r\n if(this.required && this.selectedOption==''){\r\n this.validationFailed=true;\r\n this.validationMessage='This is a required question';\r\n this.validate.emit(this.validationFailed);\r\n }\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\r\n <div class=\"input-wrapper\">\r\n <label>{{ question.question }}</label\r\n > \r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n\r\n <div class=\"checkboxField\" *ngFor=\"let option of customOptions\">\r\n <input\r\n class=\"formCheckbox mb-2\"\r\n type=\"radio\"\r\n [name]=\"question.id\"\r\n [id]=\"option.value\"\r\n [value]=\"option.value\"\r\n [style.accent-color]=\"color\"\r\n (blur)=\"validateInput()\"\r\n [(ngModel)]=\"selectedOption\"\r\n />\r\n <label\r\n class=\"formCheckLabel ms-2 mb-2\"\r\n [for]=\"option.value\"\r\n *ngIf=\"optionType == 'OPTION'\"\r\n >{{ option.value }}</label\r\n >\r\n <label\r\n class=\"formCheckLabel ms-2 mb-2\"\r\n [for]=\"option.value\"\r\n *ngIf=\"optionType == 'LOOKUP' || 'DATABASE' || 'API'\"\r\n >{{ option.label }}</label\r\n >\r\n </div>\r\n\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg\r\n class=\"validationSvg\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"#FF0000\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 12.75L12 7.75\"\r\n stroke=\"white\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\r\n </svg>\r\n {{ validationMessage }}\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { AngularEditorConfig } from '@kolkov/angular-editor';\r\n\r\n@Component({\r\n selector: 'lib-rich-text-editor-fields',\r\n templateUrl: './rich-text-editor-fields.component.html',\r\n styleUrls: ['./rich-text-editor-fields.component.scss'],\r\n})\r\nexport class RichTextEditorFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n numberOfRows!: number;\r\n limitedCharacters: boolean = false;\r\n counts: number = 0;\r\n htmlContent: string = '';\r\n characterCount!: number;\r\n validationFailed: boolean = false;\r\n validationMessage: string = '';\r\n\r\n @Output() validate : EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n\r\n config: AngularEditorConfig = {\r\n editable: true,\r\n spellcheck: true,\r\n height: '15rem',\r\n minHeight: '5rem',\r\n placeholder: 'Enter text here...',\r\n translate: 'no',\r\n defaultParagraphSeparator: 'p',\r\n defaultFontName: 'Arial',\r\n toolbarHiddenButtons: [['bold']],\r\n customClasses: [\r\n {\r\n name: 'quote',\r\n class: 'quote',\r\n },\r\n {\r\n name: 'redText',\r\n class: 'redText',\r\n },\r\n {\r\n name: 'titleText',\r\n class: 'titleText',\r\n tag: 'h1',\r\n },\r\n ],\r\n };\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.numberOfRows = this.question.formElement.appearance.numberOfRows;\r\n this.limitedCharacters =\r\n this.question.formElement.validation.limitedCharacters;\r\n this.counts = this.question.formElement.validation.count;\r\n this.numberOfRows = this.question.formElement.appearance.numberOfRows;\r\n this.limitedCharacters =\r\n this.question.formElement.validation.limitedCharacters;\r\n if (this.limitedCharacters) {\r\n this.characterCount = this.question.formElement.validation.count;\r\n }\r\n }\r\n\r\n validateEditor() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (!this.htmlContent && this.required) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.validate.emit(this.validationFailed);;\r\n }\r\n }\r\n\r\n validateInput(event: any) {\r\n if (this.htmlContent.length >= this.characterCount) {\r\n this.htmlContent = this.htmlContent.substring(0, this.characterCount);\r\n }\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\r\n <div class=\"input-wrapper\">\r\n <label>{{ question.question }}</label> \r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div class=\"svg-wrapper mb-2 hintIcon\" [attr.data-title]=\"hint\" *ngIf=\"hint\">\r\n <svg class=\"hintSvg\" viewBox=\"0 0 30 30\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n</div>\r\n <angular-editor\r\n [(ngModel)]=\"htmlContent\"\r\n [config]=\"config\"\r\n (input)=\"validateInput($event)\"\r\n (blur)=\"validateEditor()\"\r\n ></angular-editor>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg class=\"validationSvg\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\" fill=\"#FF0000\" stroke=\"#FF0000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\r\n </svg>\r\n {{validationMessage}}</div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-selection-matrix-fields',\r\n templateUrl: './selection-matrix-fields.component.html',\r\n styleUrls: ['./selection-matrix-fields.component.scss'],\r\n})\r\nexport class SelectionMatrixFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n\r\n ngOnInit() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.question;\r\n this.count;\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\r\n <div class=\"input-wrapper\">\r\n <label>{{question.question}}</label> \r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div class=\"svg-wrapper mb-2 hintIcon\" [attr.data-title]=\"hint\" *ngIf=\"hint\">\r\n <svg class=\"hintSvg\" viewBox=\"0 0 30 30\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-signature-fields',\r\n templateUrl: './signature-fields.component.html',\r\n styleUrls: ['./signature-fields.component.scss'],\r\n})\r\nexport class SignatureFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n maxFileSize: number = 0;\r\n minFileSize: number = 0;\r\n\r\n ngOnInit() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.maxFileSize = this.question.formElement.validation.maxFileSize;\r\n this.minFileSize = this.question.formElement.validation.minFileSize;\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\r\n <div class=\"input-wrapper\">\r\n <label>{{question.question}}</label> \r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div class=\"svg-wrapper mb-2 hintIcon\" [attr.data-title]=\"hint\" *ngIf=\"hint\">\r\n <svg class=\"hintSvg\" viewBox=\"0 0 30 30\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n</div>\r\n</div>\r\n","import { Component, Input, Renderer2, ElementRef, EventEmitter, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-slider-fields',\r\n templateUrl: './slider-fields.component.html',\r\n styleUrls: ['./slider-fields.component.scss'],\r\n})\r\nexport class SliderFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n minValue: number = 0;\r\n maxValue: number = 0;\r\n stepValue: number = 0;\r\n changeSliderColor: boolean = false;\r\n sliderColor: string = '';\r\n validationFailed: boolean = false;\r\n validationMessage:string='';\r\n\r\n selectedValue: number = 0; // Initialize with default value\r\n\r\n @Output() validate : EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n constructor(private renderer: Renderer2, private el: ElementRef) {}\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned(){\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.minValue = this.question.formElement.appearance.minValue;\r\n this.maxValue = this.question.formElement.appearance.maxValue;\r\n this.stepValue = this.question.formElement.appearance.stepValue;\r\n this.changeSliderColor =\r\n this.question.formElement.appearance.changeSliderColor;\r\n\r\n if (this.changeSliderColor) {\r\n this.sliderColor = this.question.formElement.appearance.sliderColor;\r\n }\r\n }\r\n validateSlider(){\r\n this.validationFailed = false; \r\n this.validationMessage = '';\r\n if(this.required && this.selectedValue==0){\r\n this.validationFailed=true;\r\n this.validationMessage='This is a required question';\r\n this.validate.emit(this.validationFailed);\r\n }\r\n }\r\n\r\n \r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\r\n <div class=\"input-wrapper\">\r\n <label>{{ question.question }}</label> \r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div class=\"svg-wrapper mb-2 hintIcon\" [attr.data-title]=\"hint\" *ngIf=\"hint\">\r\n <svg class=\"hintSvg\" viewBox=\"0 0 30 30\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n</div>\r\n</div>\r\n <div class=\"sliderRow\">\r\n <div class=\"sliderLeft\">\r\n <mat-slider\r\n [min]=\"minValue\"\r\n [max]=\"maxValue\"\r\n [step]=\"stepValue\"\r\n [ngStyle]=\"{\r\n '--mdc-slider-active-track-color': changeSliderColor\r\n ? sliderColor\r\n : ''\r\n }\"\r\n >\r\n <input matSliderThumb [(ngModel)]=\"selectedValue\" (blur)=\"validateSlider()\"/>\r\n </mat-slider>\r\n </div>\r\n <div class=\"sliderRight\">\r\n <label class=\"selected-count font-weight-bold\">{{ selectedValue }}</label>\r\n </div>\r\n </div>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg class=\"validationSvg\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\" fill=\"#FF0000\" stroke=\"#FF0000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\r\n </svg>\r\n {{validationMessage}}</div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-terms-and-condition-fields',\r\n templateUrl: './terms-and-condition-fields.component.html',\r\n styleUrls: ['./terms-and-condition-fields.component.scss'],\r\n})\r\nexport class TermsAndConditionFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n\r\n ngOnInit() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.question;\r\n this.count;\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\r\n <div class=\"input-wrapper\">\r\n <label>{{ question.question }}</label> \r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div class=\"svg-wrapper mb-2 hintIcon\" [attr.data-title]=\"hint\" *ngIf=\"hint\">\r\n <svg class=\"hintSvg\" viewBox=\"0 0 30 30\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n</div>\r\n </div>\r\n \r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-text-area-fields',\r\n templateUrl: './text-area-fields.component.html',\r\n styleUrls: ['./text-area-fields.component.scss'],\r\n})\r\nexport class TextAreaFieldsComponent {\r\n @Input() question: any = {};\r\n answer: string = '';\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n numberOfRows!: number;\r\n limitedCharacters!: boolean;\r\n characterCount!: number;\r\n validationFailed: boolean = false;\r\n validationMessage: string = '';\r\n enteredText: string = '';\r\n\r\n @Output() validate : EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n\r\n ngOnInit() {\r\n this.valueAssigned(); \r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.numberOfRows = this.question.formElement.appearance.numberOfRows;\r\n this.limitedCharacters =\r\n this.question.formElement.validation.limitedCharacters;\r\n if (this.limitedCharacters) {\r\n this.characterCount = this.question.formElement.validation.count;\r\n }\r\n }\r\n validateInput(event: any) {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n let value = event.target.value;\r\n if (this.required && !value) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'Please enter a valid text';\r\n }\r\n }\r\n validateTextarea() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (!this.enteredText && this.required) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.validate.emit(this.validationFailed);;\r\n }\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\r\n <div class=\"input-wrapper\">\r\n <label>{{ question.question }}</label> \r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div class=\"svg-wrapper mb-2 hintIcon\" [attr.data-title]=\"hint\" *ngIf=\"hint\">\r\n <svg class=\"hintSvg\" viewBox=\"0 0 30 30\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n</div>\r\n</div>\r\n <textarea class=\"form-control mb-2\" [rows]=\"numberOfRows\"\r\n (input)=\"validateInput($event)\"\r\n (blur)=\"validateTextarea()\"\r\n [(ngModel)]=\"enteredText\"\r\n [class.invalid]=\"validationFailed\"\r\n [maxlength]=\"characterCount\"\r\n ></textarea>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg class=\"validationSvg\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\" fill=\"#FF0000\" stroke=\"#FF0000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\r\n </svg>\r\n {{validationMessage}}</div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-text-fields',\r\n templateUrl: './text-fields.component.html',\r\n styleUrls: ['./text-fields.component.scss'],\r\n})\r\nexport class TextFieldsComponent {\r\n @Input() question: any = {};\r\n answer: string = '';\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n placeholder: string = '';\r\n defaultValue: string = '';\r\n isBold!: boolean;\r\n isUnderline!: boolean;\r\n isItalics!: boolean;\r\n textAlign: string = '';\r\n font: string = '';\r\n fontSize: string = '';\r\n validationType: string = '';\r\n validation: string = '';\r\n regex: string = '';\r\n enteredText: string = '';\r\n validationFailed: boolean = false;\r\n validationMessage: string = '';\r\n\r\n @Output() validate: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.placeholder = this.question.formElement.appearance.placeholder;\r\n this.defaultValue = this.question.formElement.appearance.defaultValue;\r\n this.isBold = this.question.formElement.appearance.bold;\r\n this.isItalics = this.question.formElement.appearance.italics;\r\n this.isUnderline = this.question.formElement.appearance.underline;\r\n this.textAlign = this.question.formElement.appearance.textAlign;\r\n this.font = this.question.formElement.appearance.font;\r\n this.fontSize = this.question.formElement.appearance.fontSize;\r\n this.validationType = this.question.formElement.validation.validationType;\r\n if (this.validationType == 'CUSTOM_VALIDATION') {\r\n this.validation = this.question.formElement.validation.validation;\r\n } else if (this.validationType == 'REGULAR_EXPRESSION') {\r\n this.regex = this.question.formElement.validation.regex;\r\n }\r\n }\r\n\r\n validatetextField() {\r\n if (this.required && !this.enteredText) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.validate.emit(this.validationFailed);\r\n }\r\n }\r\n\r\n validateInput(event: any) {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n let value = event.target.value;\r\n if (this.required && !this.enteredText) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'Please enter a valid text';\r\n this.validate.emit(this.validationFailed);\r\n }\r\n if (this.validation == 'Numbers only') {\r\n event.target.value = value?.replace(/\\D/g, '');\r\n } else if (this.validation == 'Alphanumeric') {\r\n event.target.value = value?.replace(/[^a-zA-Z0-9]/g, '');\r\n } else if (this.validationType == 'REGULAR_EXPRESSION' && this.regex) {\r\n // /[^aeiou]/gi\r\n event.target.value = value?.replace(this.regex, '');\r\n }\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\r\n <div class=\"input-wrapper\">\r\n <label>{{ question.question }}</label> \r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div class=\"svg-wrapper mb-2 hintIcon\" [attr.data-title]=\"hint\" *ngIf=\"hint\">\r\n <svg class=\"hintSvg\" viewBox=\"0 0 30 30\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n \r\n <input\r\n type=\"text\"\r\n class=\"form-control mb-2 height\"\r\n [placeholder]=\"placeholder\"\r\n [value]=\"defaultValue\"\r\n [ngClass]=\"{\r\n 'bold': isBold,\r\n 'underline': isUnderline,\r\n 'italics': isItalics\r\n }\"\r\n [style.text-align]=\"textAlign\"\r\n [style.font-family]=\"font\"\r\n [style.font-size]=\"fontSize+'px'\"\r\n [(ngModel)]=\"enteredText\"\r\n (blur)=\"validatetextField()\"\r\n (input)=\"validateInput($event)\"\r\n [class.invalid]=\"validationFailed\"\r\n />\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg class=\"validationSvg\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\" fill=\"#FF0000\" stroke=\"#FF0000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\r\n </svg>\r\n {{validationMessage}}</div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-toggle-switch-fields',\r\n templateUrl: './toggle-switch-fields.component.html',\r\n styleUrls: ['./toggle-switch-fields.component.scss'],\r\n})\r\nexport class ToggleSwitchFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n labelOnValue: string = '';\r\n labelOffValue: string = '';\r\n labelOnColor: string = '';\r\n labelOffColor: string = '';\r\n toggleBackgroundColor: string = '';\r\n ngOnInit() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.labelOnValue = this.question.formElement.appearance.labelOnValue;\r\n this.labelOffValue = this.question.formElement.appearance.labelOffValue;\r\n this.labelOnColor = this.question.formElement.appearance.labelOnColor;\r\n this.labelOffColor = this.question.formElement.appearance.labelOffColor;\r\n this.toggleBackgroundColor = this.labelOnColor;\r\n }\r\n\r\n toggleSliderColor(event: any): void {\r\n let isChecked = event.target.checked;\r\n // Update slider background color based on toggle state\r\n this.toggleBackgroundColor = isChecked\r\n ? this.question.formElement.appearance.labelOffColor\r\n : this.question.formElement.appearance.labelOnColor;\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-2 px-3\">\r\n <div class=\"input-wrapper\">\r\n <label>{{ question.question }}</label> \r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div class=\"svg-wrapper mb-2 hintIcon\" [attr.data-title]=\"hint\" *ngIf=\"hint\">\r\n <svg class=\"hintSvg\" viewBox=\"0 0 30 30\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div> \r\n</div>\r\n <div class=\"mt-2\">\r\n <label class=\"switch\">\r\n <input type=\"checkbox\" id=\"togBtn\" (change)=\"toggleSliderColor($event)\" />\r\n <div\r\n class=\"slider round\"\r\n [ngStyle]=\"{ 'background-color': toggleBackgroundColor }\"\r\n >\r\n <span class=\"on action-btn-text\">{{ labelOffValue }}</span>\r\n <span class=\"off action-btn-text\">{{ labelOnValue }}</span>\r\n </div>\r\n </label>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-url-fields',\r\n templateUrl: './url-fields.component.html',\r\n styleUrls: ['./url-fields.component.scss'],\r\n})\r\nexport class UrlFieldsComponent {\r\n @Input() question: any = {};\r\n count: number = 0;\r\n required: boolean = false;\r\n hint: string = '';\r\n placeholder: string = '';\r\n showPreviewButton!: boolean;\r\n enteredUrl: string = '';\r\n validationFailed: boolean = false;\r\n validationMessage: string = '';\r\n\r\n @Output() validate: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.valueAssigned();\r\n }\r\n\r\n handleClick() {\r\n const textFieldValue = (\r\n document.getElementById('textField') as HTMLInputElement\r\n ).value;\r\n window.open(textFieldValue, '_blank');\r\n }\r\n\r\n valueAssigned() {\r\n this.count = this.question.count;\r\n this.required = this.question.required;\r\n this.hint = this.question.hint;\r\n this.placeholder = this.question.formElement.appearance.placeholder;\r\n this.showPreviewButton =\r\n this.question.formElement.appearance.showPreviewButton;\r\n }\r\n validateUrl() {\r\n this.validationFailed = false;\r\n this.validationMessage = '';\r\n if (this.required && !this.enteredUrl) {\r\n this.validationFailed = true;\r\n this.validationMessage = 'This is a required question';\r\n this.question.validation = false;\r\n }\r\n else {\r\n this.question.validation = true;\r\n }\r\n }\r\n\r\n validateInput(event: any) {\r\n this.validateUrl();\r\n this.question.answer = event.target.value;\r\n }\r\n}\r\n","<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-3\">\r\n <div class=\"input-wrapper\">\r\n <label>{{ question.question }}</label\r\n > \r\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\r\n <div\r\n class=\"svg-wrapper mb-2 hintIcon\"\r\n [attr.data-title]=\"hint\"\r\n *ngIf=\"hint\"\r\n >\r\n <svg\r\n class=\"hintSvg\"\r\n viewBox=\"0 0 30 30\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\r\n stroke=\"#323232\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"input-group\">\r\n <input\r\n id=\"textField\"\r\n type=\"text\"\r\n class=\"form-control col-11.5 rounded height\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"enteredUrl\"\r\n (blur)=\"validateUrl()\"\r\n (input)=\"validateInput($event)\"\r\n [class.invalid]=\"validationFailed\"\r\n />\r\n <div class=\"ps-2\">\r\n <button\r\n *ngIf=\"showPreviewButton\"\r\n type=\"button\"\r\n class=\"btn col-.5 custom-button rounded d-flex justify-content-center align-items-center height\"\r\n (click)=\"handleClick()\"\r\n >\r\n <svg\r\n width=\"30\"\r\n height=\"30\"\r\n viewBox=\"0 0 30 30\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M4.99561 16.2503C4.99561 21.7754 9.47462 26.2544 14.9998 26.2544C20.5249 26.2544 25.0039 21.7754 25.0039 16.2503C25.0039 10.7251 20.5249 6.24609 14.9998 6.24609H6.24613\"\r\n stroke=\"#084FFF\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M9.99766 2.49219L6.24609 6.24375\"\r\n stroke=\"#084FFF\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M9.99766 9.99766L6.24609 6.24609\"\r\n stroke=\"#084FFF\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M17.7924 14.8125L14.3035 18.3015L12.2051 16.2106\"\r\n stroke=\"#084FFF\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\r\n <svg class=\"validationSvg\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\" fill=\"#FF0000\" stroke=\"#FF0000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\r\n </svg>\r\n {{validationMessage}}</div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-logic',\r\n templateUrl: './logic.component.html',\r\n styleUrls: ['./logic.component.scss'],\r\n})\r\nexport class LogicComponent {\r\n @Input() childLogics: any = [];\r\n}\r\n","<div *ngFor=\"let childLogic of childLogics\">\r\n <div *ngFor=\"let formElement of childLogic.formElements\">\r\n <!-- <lib-form-elements [grid]=\"formElement\"></lib-form-elements> -->\r\n </div>\r\n</div>\r\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'lib-question',\r\n templateUrl: './question.component.html',\r\n styleUrls: ['./question.component.scss']\r\n})\r\nexport class QuestionComponent implements OnInit {\r\n @Input() question: any = {};\r\n\r\n ngOnInit() {}\r\n\r\n constructor(private cdr: ChangeDetectorRef) {}\r\n\r\n validations: any = [];\r\n @Input() currentPageIndex: number = 0;\r\n @Output() emitValidations = new EventEmitter<any>();\r\n\r\n\r\n \r\n\r\n \r\n\r\n handleValidation(validation: any) {\r\n this.validations.push(validation);\r\n\r\n // Update validationStatus array\r\n\r\n \r\n\r\n this.emitValidations.emit(this.validations);\r\n\r\n this.cdr.detectChanges(); \r\n}\r\n\r\n\r\n\r\n}\r\n","<div>\r\n <lib-check-box-fields\r\n *ngIf=\"question.formElement.elementType === 'CHECK_BOX'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-check-box-fields>\r\n <lib-date-time-fields\r\n *ngIf=\"question.formElement.elementType === 'DATE_TIME'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-date-time-fields>\r\n <lib-drop-down-fields\r\n *ngIf=\"question.formElement.elementType === 'DROP_DOWN'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-drop-down-fields>\r\n <lib-file-picker-fields\r\n *ngIf=\"question.formElement.elementType === 'FILE_PICKER'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-file-picker-fields>\r\n <lib-location-fields\r\n *ngIf=\"question.formElement.elementType === 'LOCATION'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-location-fields>\r\n\r\n <lib-mail-fields\r\n *ngIf=\"question.formElement.elementType === 'EMAIL'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-mail-fields>\r\n <lib-mobile-fields\r\n *ngIf=\"question.formElement.elementType === 'MOBILE'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-mobile-fields>\r\n <lib-number-fields\r\n *ngIf=\"question.formElement.elementType === 'NUMBER'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-number-fields>\r\n <lib-password-fields\r\n *ngIf=\"question.formElement.elementType === 'PASSWORD'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-password-fields>\r\n <lib-radio-button-fields\r\n *ngIf=\"question.formElement.elementType === 'RADIO_BUTTON'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-radio-button-fields>\r\n <lib-rich-text-editor-fields\r\n *ngIf=\"question.formElement.elementType === 'RICH_TEXT_EDITOR'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-rich-text-editor-fields>\r\n <lib-selection-matrix-fields\r\n *ngIf=\"question.formElement.elementType === 'SELECTION_MATRIX'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-selection-matrix-fields>\r\n <lib-signature-fields\r\n *ngIf=\"question.formElement.elementType === 'SIGNATURE'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-signature-fields>\r\n <lib-slider-fields\r\n *ngIf=\"question.formElement.elementType === 'SLIDER'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-slider-fields>\r\n <lib-terms-and-condition-fields\r\n *ngIf=\"question.formElement.elementType === 'TERMS_AND_CONDITION'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-terms-and-condition-fields>\r\n <lib-text-area-fields\r\n *ngIf=\"question.formElement.elementType === 'TEXT_AREA'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-text-area-fields>\r\n <lib-text-fields\r\n *ngIf=\"question.formElement.elementType === 'TEXT_BOX'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-text-fields>\r\n <lib-toggle-switch-fields\r\n *ngIf=\"question.formElement.elementType === 'TOGGLE_SWITCH'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-toggle-switch-fields>\r\n <lib-url-fields\r\n *ngIf=\"question.formElement.elementType === 'URL'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-url-fields>\r\n <lib-logic *ngIf=\"question.childLogics\"\r\n [childLogics]=\"question.childLogics\"></lib-logic>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-sub-form',\r\n templateUrl: './sub-form.component.html',\r\n styleUrls: ['./sub-form.component.scss']\r\n})\r\nexport class SubFormComponent {\r\n @Input() subForm:any={};\r\n}\r\n","<div class=\"outer-container mb-4 px-3\">\r\n <div class=\"body container pt-3 pb-3 px-3\">\r\n <div class=\"tab-content pt-4 pb-3 px-3\">\r\n <p class=\"sectionTitle\">{{subForm.title}}</p>\r\n <p class=\"description mb-5\">{{subForm.description}}</p>\r\n <div *ngFor=\"let formElement of subForm.formElements\">\r\n <!-- <lib-form-elements [grid]=\"formElement\"></lib-form-elements> -->\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-form-elements',\r\n templateUrl: './form-elements.component.html',\r\n styleUrls: ['./form-elements.component.scss'],\r\n})\r\nexport class FormElementsComponent {\r\n @Input() grid: any = {};\r\n @Input() currentPageIndex: number = 0;\r\n}\r\n","<div *ngIf=\"grid.entityType === 'QUESTION'\">\r\n <lib-question [question]=\"grid?.formElementType\"\r\n [currentPageIndex]=\"currentPageIndex\"\r\n ></lib-question>\r\n</div>\r\n<div *ngIf=\"grid.entityType === 'SECTION'\">\r\n <lib-section-fields [section]=\"grid.formElementType\"></lib-section-fields>\r\n</div>\r\n<div *ngIf=\"grid.entityType === 'SUBFORM'\">\r\n <lib-sub-form [subForm]=\"grid.formElementType\"></lib-sub-form>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-navigation-tabs',\r\n templateUrl: './navigation-tabs.component.html',\r\n styleUrls: ['./navigation-tabs.component.scss'],\r\n})\r\nexport class NavigationTabsComponent {\r\n @Input() pages: any[] = [];\r\n @Input() currentPageIndex: number = 0;\r\n @Output() pageChanged = new EventEmitter<number>();\r\n\r\n setCurrentPage(index: number) {\r\n this.pageChanged.emit(index);\r\n }\r\n}\r\n","<div class=\"tab-inner-container\">\r\n <ul class=\"nav nav-tabs navTabs\" id=\"myTab\" role=\"tablist\">\r\n <li\r\n class=\"nav-item mr-1\"\r\n role=\"presentation\"\r\n *ngFor=\"let page of pages; let i = index\">\r\n <button\r\n class=\"nav-link\"\r\n [class.active]=\"i === currentPageIndex\"\r\n id=\"tab-{{ i }}\"\r\n [attr.data-bs-toggle]=\"'tab'\"\r\n [attr.data-bs-target]=\"'#content-' + i\"\r\n type=\"button\"\r\n role=\"tab\"\r\n [attr.aria-controls]=\"'content-' + i\"\r\n [attr.aria-selected]=\"i === 0\"\r\n (click)=\"setCurrentPage(i)\">\r\n {{ page.title }}\r\n </button>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content pt-5 pb-3 px-1\">\r\n <div\r\n *ngFor=\"let page of pages; let i = index\"\r\n class=\"tab-pane fade\"\r\n [class.show]=\"i === 0\"\r\n [class.active]=\"i === 0\"\r\n id=\"content-{{ i }}\"\r\n role=\"tabpanel\"\r\n [attr.aria-labelledby]=\"'tab-' + i\">\r\n <div *ngFor=\"let row of page.rows\">\r\n <div class=\"margin\">\r\n <div *ngFor=\"let grid of row.grid\">\r\n <lib-form-elements\r\n [grid]=\"grid\"></lib-form-elements>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"currentPageIndex == pages.length - 1\"\r\n class=\"footerButton d-flex justify-content-end\">\r\n <button class=\"btn btn-primary me-md-2 rounded-pill\" type=\"button\">\r\n Submit\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { QuestionComponent } from '../../element-type/question/question.component';\r\n\r\n@Component({\r\n selector: 'lib-next-prev-navigation',\r\n templateUrl: './next-prev-navigation.component.html',\r\n styleUrls: ['./next-prev-navigation.component.scss']\r\n})\r\nexport class NextPrevNavigationComponent {\r\n\r\n @Input() currentPageIndex: number = 0;\r\n @Input() pages: any[] = [];\r\n @Input() previousPage: any = {};\r\n @Input() nextPage: any = {};\r\n @Input() currentPage: any = {};\r\n @Output() navigateNext = new EventEmitter<void>();\r\n @Output() navigatePrevious = new EventEmitter<void>();\r\n\r\n onNavigateNext() {\r\n this.navigateNext.emit();\r\n }\r\n\r\n onNavigatePrevious() {\r\n this.navigatePrevious.emit();\r\n }\r\n}\r\n","<div class=\"pageTitleDiv\">\r\n <p class=\"pageTitle\">{{ currentPage.title }}</p>\r\n</div>\r\n<div class=\"button-inner-container rounded\">\r\n <div class=\"tab-content pt-5 pb-3 row\">\r\n <div *ngFor=\"let row of pages[currentPageIndex].rows\" class=\"marginSize\">\r\n <div *ngFor=\"let grid of row.grid\">\r\n <lib-form-elements\r\n [grid]=\"grid\"\r\n [currentPageIndex]=\"currentPageIndex\"\r\n ></lib-form-elements>\r\n </div>\r\n </div>\r\n <div class=\"footerButton\">\r\n <div class=\"prevButtonDiv\">\r\n <button\r\n class=\"me-md-2 rounded-pill navButton\"\r\n type=\"button\"\r\n (click)=\"onNavigatePrevious()\"\r\n *ngIf=\"0 < currentPageIndex\"\r\n >\r\n <svg\r\n width=\"24\"\r\n height=\"24\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M4.51025 11.9883L19.5003 11.9883\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M10.514 17.9766L4.49805 11.9996L10.514 6.02256\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n Previous | {{ previousPage.title }}\r\n </button>\r\n </div>\r\n <div class=\"nextButtonDiv\">\r\n <button\r\n class=\"md-2 rounded-pill navButton\"\r\n type=\"button\"\r\n (click)=\"onNavigateNext()\"\r\n *ngIf=\"currentPageIndex < pages.length - 1\"\r\n >\r\n Next | {{ nextPage.title }}\r\n <svg\r\n width=\"24\"\r\n height=\"24\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M19.4897 12.0117L4.49975 12.0117\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M13.486 6.02344L19.502 12.0004L13.486 17.9774\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </button>\r\n <button\r\n class=\"submitBtn me-md-2 rounded-pill\"\r\n type=\"button\"\r\n *ngIf=\"currentPageIndex == pages.length - 1\"\r\n >\r\n Submit\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormService } from '../../services/form.service';\r\nimport * as mapper from '../../services/mapper.service';\r\nimport { PublicForm } from '../../models/publicForm.model';\r\n\r\n@Component({\r\n selector: 'lib-submit-form',\r\n templateUrl: './submit-form.component.html',\r\n styleUrls: ['./submit-form.component.scss'],\r\n})\r\nexport class SubmitFormComponent implements OnInit {\r\n question: PublicForm | null = null;\r\n @Input() moduleName: string = '';\r\n\r\n name: string = '';\r\n saveAutomatically: boolean = false;\r\n saveInterval: number = 0;\r\n customizeFont: boolean = false;\r\n fontFamily: string = '';\r\n fontSize: number = 0;\r\n enableDataExport: boolean = false;\r\n fileFormats: string[] = [];\r\n enableQuestionNumbering: boolean = false;\r\n questionNumbering: string = '';\r\n enableGoogleRecaptcha: boolean = false;\r\n googleRecaptchaKey: string = '';\r\n googleRecaptchaSecret: string = '';\r\n navigation: string = '';\r\n markAllQuestionsAsRequired: boolean = false;\r\n pages: any = [];\r\n currentPageIndex: number = 0;\r\n previousPage: any = {};\r\n currentPage: any = {};\r\n nextPage: any = {};\r\n lastTab: boolean = false;\r\n validations: any = [];\r\n questionAnswers: { questionId: string; answer: any }[] = [];\r\n\r\n constructor(private formService: FormService) {}\r\n\r\n ngOnInit() {\r\n this.formService.getQuestions(this.moduleName).subscribe((response) => {\r\n this.question = mapper.mapPublicFormToModel(response);\r\n this.name = this.question.name;\r\n this.pages = this.question.pages;\r\n this.currentPage = this.pages[0];\r\n this.nextPage = this.pages[1];\r\n this.saveAutomatically =\r\n this.question.formConfiguration.saveAutomatically;\r\n this.saveInterval = this.question.formConfiguration.saveInterval;\r\n this.customizeFont = this.question.formConfiguration.customizeFont;\r\n this.fontFamily = this.question.formConfiguration.fontFamily;\r\n this.fontSize = this.question.formConfiguration.fontSize;\r\n this.enableDataExport = this.question.formConfiguration.enableDataExport;\r\n this.fileFormats = this.question.formConfiguration.fileFormats;\r\n this.enableQuestionNumbering =\r\n this.question.formConfiguration.enableQuestionNumbering;\r\n this.questionNumbering =\r\n this.question.formConfiguration.questionNumbering;\r\n this.enableGoogleRecaptcha =\r\n this.question.formConfiguration.enableGoogleRecaptcha;\r\n this.googleRecaptchaKey =\r\n this.question.formConfiguration.googleRecaptchaKey;\r\n this.googleRecaptchaSecret =\r\n this.question.formConfiguration.googleRecaptchaSecret;\r\n this.navigation = this.question.formConfiguration.navigation;\r\n this.markAllQuestionsAsRequired =\r\n this.question.formConfiguration.markAllQuestionsAsRequired;\r\n this.generateQuestionAnswers();\r\n });\r\n }\r\n\r\n navigateToNextPage() {\r\n if (this.currentPageIndex < this.pages.length - 1) {\r\n if (this.markAllQuestionsAsRequired) {\r\n if (this.validations?.length === 0) {\r\n this.previousPage = this.currentPage;\r\n this.currentPageIndex++;\r\n this.currentPage = this.pages[this.currentPageIndex];\r\n this.nextPage = this.pages[this.currentPageIndex + 1];\r\n } else {\r\n alert('please fill required questions');\r\n }\r\n } else {\r\n this.previousPage = this.currentPage;\r\n this.currentPageIndex++;\r\n this.currentPage = this.pages[this.currentPageIndex];\r\n this.nextPage = this.pages[this.currentPageIndex + 1];\r\n }\r\n }\r\n }\r\n\r\n navigateToPreviousPage() {\r\n if (this.currentPageIndex > 0) {\r\n if (this.markAllQuestionsAsRequired) {\r\n if (this.validations?.length === 0) {\r\n this.nextPage = this.currentPage;\r\n this.currentPageIndex--;\r\n this.currentPage = this.pages[this.currentPageIndex];\r\n this.previousPage = this.pages[this.currentPageIndex - 1];\r\n } else {\r\n alert('please fill required questions');\r\n }\r\n } else {\r\n this.nextPage = this.currentPage;\r\n this.currentPageIndex--;\r\n this.currentPage = this.pages[this.currentPageIndex];\r\n this.previousPage = this.pages[this.currentPageIndex - 1];\r\n }\r\n }\r\n }\r\n\r\n setCurrentPage(index: number) {\r\n this.currentPageIndex = index;\r\n }\r\n\r\n generateQuestionAnswers() {\r\n const extractQuestions = (\r\n formElements: any[]\r\n ): { questionId: string; answer: string }[] => {\r\n const questions: { questionId: string; answer: string }[] = [];\r\n formElements.forEach((element) => {\r\n if (element.entityType === 'QUESTION') {\r\n questions.push({\r\n questionId: element.formElementType.id,\r\n answer: '',\r\n });\r\n if (element.formElementType.childLogics) {\r\n element.formElementType.childLogics.forEach((logic: any) => {\r\n questions.push(...extractQuestions(logic.formElements));\r\n });\r\n }\r\n } else if (element.entityType === 'SUBFORM') {\r\n if (element.formElementType.formElements) {\r\n questions.push(\r\n ...extractQuestions(element.formElementType.formElements)\r\n );\r\n }\r\n }\r\n });\r\n return questions;\r\n };\r\n\r\n const processPages = (pages: any[]) => {\r\n const questions: { questionId: string; answer: string }[] = [];\r\n pages.forEach((page) => {\r\n page.rows.forEach((row: any) => {\r\n questions.push(...extractQuestions(row.grid));\r\n });\r\n });\r\n return questions;\r\n };\r\n\r\n this.questionAnswers = processPages(this.pages);\r\n }\r\n}\r\n","<div class=\"outer-container\">\r\n <div class=\"head container\">\r\n <lib-header [name]=\"name\"></lib-header>\r\n </div>\r\n <div class=\"body container\">\r\n <lib-navigation-tabs\r\n *ngIf=\"navigation == 'TAB'\"\r\n [pages]=\"pages\"\r\n [currentPageIndex]=\"currentPageIndex\"\r\n (pageChanged)=\"setCurrentPage($event)\"\r\n ></lib-navigation-tabs>\r\n <lib-next-prev-navigation\r\n *ngIf=\"navigation == 'NEXT_AND_PREVIOUS_BUTTON'\"\r\n [currentPageIndex]=\"currentPageIndex\"\r\n [pages]=\"pages\"\r\n [previousPage]=\"previousPage\"\r\n [currentPage]=\"currentPage\"\r\n [nextPage]=\"nextPage\"\r\n (navigateNext)=\"navigateToNextPage()\"\r\n (navigatePrevious)=\"navigateToPreviousPage()\"\r\n ></lib-next-prev-navigation>\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { DataService } from '../services/data.service';\r\n\r\n@Component({\r\n selector: 'lib-formSubmission',\r\n templateUrl: './form-submission.component.html',\r\n styleUrls: ['./form-submission.component.scss'],\r\n})\r\nexport class FormSubmissionComponent {\r\n @Input() formData: any = {};\r\n\r\n constructor(private dataService: DataService) {}\r\n ngOnInit() {\r\n this.dataService.setApiUrl(this.formData.apiurl);\r\n this.dataService.setHeader(this.formData.headers);\r\n }\r\n}\r\n","<lib-submit-form [moduleName]=\"formData.moduleName\"></lib-submit-form>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CheckBoxFieldsComponent } from './check-box-fields/check-box-fields.component';\r\nimport { DateTimeFieldsComponent } from './date-time-fields/date-time-fields.component';\r\nimport { DropDownFieldsComponent } from './drop-down-fields/drop-down-fields.component';\r\nimport { FilePickerFieldsComponent } from './file-picker-fields/file-picker-fields.component';\r\nimport { LocationFieldsComponent } from './location-fields/location-fields.component';\r\nimport { RadioButtonFieldsComponent } from './radio-button-fields/radio-button-fields.component';\r\nimport { RichTextEditorFieldsComponent } from './rich-text-editor-fields/rich-text-editor-fields.component';\r\nimport { SelectionMatrixFieldsComponent } from './selection-matrix-fields/selection-matrix-fields.component';\r\nimport { SignatureFieldsComponent } from './signature-fields/signature-fields.component';\r\nimport { SliderFieldsComponent } from './slider-fields/slider-fields.component';\r\nimport { TermsAndConditionFieldsComponent } from './terms-and-condition-fields/terms-and-condition-fields.component';\r\nimport { TextAreaFieldsComponent } from './text-area-fields/text-area-fields.component';\r\nimport { TextFieldsComponent } from './text-fields/text-fields.component';\r\nimport { ToggleSwitchFieldsComponent } from './toggle-switch-fields/toggle-switch-fields.component';\r\nimport { UrlFieldsComponent } from './url-fields/url-fields.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MailFieldsComponent } from './mail-fields/mail-fields.component';\r\nimport { MobileFieldsComponent } from './mobile-fields/mobile-fields.component';\r\nimport { NumberFieldsComponent } from './number-fields/number-fields.component';\r\nimport { PasswordFieldsComponent } from './password-fields/password-fields.component';\r\nimport {MatSliderModule} from \"@angular/material/slider\";\r\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { DocUploadModule } from '@piserve-tech/file-upload';\r\n\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { GoogleMapsModule } from '@angular/google-maps';\r\nimport { DropdownModule } from '@piserve-tech/drop-down';\r\nimport { FilePreviewModule } from '@piserve-tech/file-preview';\r\nimport { SectionFieldsComponent } from './section-fields/section-fields.component';\r\n\r\n\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n CheckBoxFieldsComponent,\r\n DateTimeFieldsComponent,\r\n DropDownFieldsComponent,\r\n FilePickerFieldsComponent,\r\n LocationFieldsComponent,\r\n RadioButtonFieldsComponent,\r\n RichTextEditorFieldsComponent,\r\n SelectionMatrixFieldsComponent,\r\n SignatureFieldsComponent,\r\n SliderFieldsComponent,\r\n TermsAndConditionFieldsComponent,\r\n TextAreaFieldsComponent,\r\n TextFieldsComponent,\r\n ToggleSwitchFieldsComponent,\r\n UrlFieldsComponent,\r\n MailFieldsComponent,\r\n MobileFieldsComponent,\r\n NumberFieldsComponent,\r\n PasswordFieldsComponent,\r\n SectionFieldsComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n MatSliderModule,\r\n BsDatepickerModule.forRoot(),\r\n DropdownModule,\r\n AngularEditorModule,\r\n DocUploadModule,\r\n BrowserModule,\r\n GoogleMapsModule,\r\n FilePreviewModule\r\n ],\r\n exports: [\r\n CheckBoxFieldsComponent,\r\n DateTimeFieldsComponent,\r\n DropDownFieldsComponent,\r\n FilePickerFieldsComponent,\r\n LocationFieldsComponent,\r\n MailFieldsComponent,\r\n MobileFieldsComponent,\r\n NumberFieldsComponent,\r\n PasswordFieldsComponent,\r\n RadioButtonFieldsComponent,\r\n RichTextEditorFieldsComponent,\r\n SelectionMatrixFieldsComponent,\r\n SignatureFieldsComponent,\r\n SliderFieldsComponent,\r\n TermsAndConditionFieldsComponent,\r\n TextAreaFieldsComponent,\r\n TextFieldsComponent,\r\n ToggleSwitchFieldsComponent,\r\n UrlFieldsComponent,\r\n SectionFieldsComponent\r\n\r\n ]\r\n})\r\nexport class FormFieldsModule { }\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { LogicComponent } from './logic/logic.component';\n\n\n\n@NgModule({\n declarations: [LogicComponent],\n imports: [\n CommonModule\n ],\n exports:[LogicComponent]\n})\nexport class LogicModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormElementsComponent } from './form-elements/form-elements.component';\nimport { QuestionComponent } from './question/question.component';\nimport { SubFormComponent } from './sub-form/sub-form.component';\nimport { FormFieldsModule } from '../form-fields/form-fields.module';\nimport { LogicModule } from '../logic/logic.module';\n\n\n\n@NgModule({\n declarations: [FormElementsComponent, QuestionComponent, SubFormComponent],\n imports: [\n CommonModule,\n FormFieldsModule,\n LogicModule\n ],\n exports: [\n FormElementsComponent,\n QuestionComponent,\n SubFormComponent\n ]\n})\nexport class ElementTypeModule { }\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SubmitFormComponent } from './submit-form/submit-form.component';\r\nimport { FormFieldsModule } from '../form-fields/form-fields.module';\r\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\r\nimport { HeaderComponent } from './header/header.component';\r\nimport { NavigationTabsComponent } from './navigation-tabs/navigation-tabs.component';\r\nimport { NextPrevNavigationComponent } from './next-prev-navigation/next-prev-navigation.component';\r\nimport { ElementTypeModule } from '../element-type/element-type.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n SubmitFormComponent,\r\n HeaderComponent,\r\n NavigationTabsComponent,\r\n NextPrevNavigationComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormFieldsModule,\r\n BsDatepickerModule.forRoot(),\r\n ElementTypeModule\r\n ],\r\n exports: [SubmitFormComponent, NextPrevNavigationComponent]\r\n})\r\nexport class FormSubmitModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { FormSubmissionComponent } from './form-submission.component';\r\n// import { DropdownModule } from '@piserve-tech/drop-down';\r\nimport { FilePreviewModule } from '@piserve-tech/file-preview';\r\nimport { DocUploadModule } from '@piserve-tech/file-upload';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { FormFieldsModule } from '../form-fields/form-fields.module';\r\nimport { FormSubmitModule } from '../form-submission/form-submission.module';\r\nimport { DropdownModule } from '@piserve-tech/drop-down';\r\n\r\n@NgModule({\r\n declarations: [FormSubmissionComponent],\r\n imports: [\r\n DropdownModule,\r\n FilePreviewModule,\r\n DocUploadModule,\r\n FormsModule,\r\n MatTabsModule,\r\n FormFieldsModule,\r\n FormSubmitModule,\r\n ],\r\n exports: [FormSubmissionComponent],\r\n})\r\nexport class FormSubmissionModule {}\r\n","/*\r\n * Public API Surface of form-submission\r\n */\r\n\r\nexport * from './lib/form-submission.service';\r\nexport * from './lib/form-submission.component';\r\nexport * from './lib/form-submission.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.DataService","i1.FormService","i2","i1","i3","i1.CountryService","i4","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.LogicComponent","i2.SectionFieldsComponent","i3.QuestionComponent","i4.SubFormComponent","i2.FormElementsComponent","mapper.mapPublicFormToModel","i3.HeaderComponent","i4.NavigationTabsComponent","i5.NextPrevNavigationComponent","i1.DataService","i2.SubmitFormComponent"],"mappings":"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"}
|