{"version":3,"file":"piserve-tech-module-configuration.mjs","sources":["../../../projects/module-configuration/src/lib/module-configuration.service.ts","../../../projects/module-configuration/src/services/data.service.ts","../../../projects/module-configuration/src/services/auth.service.ts","../../../projects/module-configuration/src/lib/constant/module.constant.ts","../../../projects/module-configuration/src/lib/components/confirm-dialog/confirm-dialog.component.ts","../../../projects/module-configuration/src/lib/components/confirm-dialog/confirm-dialog.component.html","../../../projects/module-configuration/src/services/api.service.ts","../../../projects/module-configuration/src/lib/components/module/module.component.ts","../../../projects/module-configuration/src/lib/components/module/module.component.html","../../../projects/module-configuration/src/lib/module-configuration.component.ts","../../../projects/module-configuration/src/lib/module-configuration.component.html","../../../projects/module-configuration/src/lib/module-configuration.module.ts","../../../projects/module-configuration/src/public-api.ts","../../../projects/module-configuration/src/piserve-tech-module-configuration.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ModuleConfigurationService {\r\n\r\n  constructor() { }\r\n}\r\n","import { Injectable, OnDestroy } 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\r\n  constructor() { }\r\n\r\n  private apiUrl = new BehaviorSubject<string>('');\r\n  public apiUrl$: Observable<string> = this.apiUrl.asObservable();\r\n\r\n\r\n\r\n\r\n\r\n  setApiUrl(data: string): void {\r\n    this.apiUrl.next(data);\r\n  }\r\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n\r\n  constructor() { }\r\n\r\n  private headerSubject=new BehaviorSubject<any>({});\r\n  public header$: Observable<any> = this.headerSubject.asObservable();\r\n\r\n  setHeader(data:any){\r\n    this.headerSubject.next(data);\r\n  }\r\n}","export const CONSTANTS = {\r\n\r\n    INTERVALS: [{ label: '5sec', value: '5', image: '' }, { label: '10sec', value: '10', image: '' }, { label: '15sec', value: '15', image: '' }, { label: '20sec', value: '20', image: '' }],\r\n    FONTFAMILY: [{ label: 'Verdana', value: 'Verdana', image: '' }, { label: 'Tahoma', value: 'Tahoma', image: '' }, { label: 'Georgia', value: 'Georgia', image: '' }, { label: 'Poppins', value: 'Poppins', image: '' }, { label: 'Garamond', value: 'Garamond', image: '' }, { label: 'Tajawal', value: 'Tajawal', image: '' }, { label: 'Raleway', value: 'Raleway', image: '' }],\r\n    FONTSIZE: [{ label: '18px', value: '18', image: '' }, { label: '20px', value: '20', image: '' }, { label: '22px', value: '22', image: '' }, { label: '24px', value: '24', image: '' }, { label: '26px', value: '26', image: '' }],\r\n    FILEFORMATS: [{ label: 'PDF', value: 'PDF', image: '' }, { label: 'WORD', value: 'WORD', image: '' }, { label: 'DOC', value: 'DOC', image: '' }],\r\n    HEADEROPTIONS: [{label:\"Question\",value:\"QUESTION\"},{label:\"Custom input\",value:\"CUSTOM_INPUT\"},{label: \"Local Storage\", value: \"LOCAL_STORAGE\"},{label: \"Session Storage\", value: \"SESSION_STORAGE\"}],\r\n    PARAMSOPTIONS: [{image:'',label:'Custom value',value:'CUSTOM_INPUT'},{image:'',label:'Select Question',value:'QUESTION'},{image:'',label:'Local storage',value:'LOCAL_STORAGE'},{image:'',label:'Session storage',value:'SESSION_STORAGE'},{image:'',label:'Page Index',value:'PAGE_INDEX'},{image:'',label:'Page Size',value:'PAGE_SIZE'}],\r\n    APIOPTIONS: [{value:'GET',label:'GET'},{value:'POST',label:'POST'},{value:'PUT',label:'PUT'},{value:'PATCH',label:'PATCH'},{value:'DELETE',label:'DELETE'}],\r\n    WEBHOOKTRIGGEROPTION: [{value:'On Save',label:'On Save'},{value:'On Update',label:'On Update'},  {value:'On Delete',label:'On Delete'} ],\r\n    EMITTEROPTIONS: [{label:\"Question\",value:\"QUESTION\"},{label:\"Custom input\",value:\"CUSTOM_INPUT\"}],\r\n    ELEMENTTYPE: [\r\n        { value: \"TEXT_AREA\", label: \"Text Area\", image: '' },\r\n        { value: \"TEXT_BOX\", label: \"Text Box\", image: '' },\r\n        { value: \"RICH_TEXT_EDITOR\", label: \"Rich Text Editor\", image: '' },\r\n        { value: \"DROP_DOWN\", label: \"Drop Down\", image: ''},\r\n        { value: \"MOBILE\", label: \"Mobile\", image: '' },\r\n        { value: \"EMAIL\", label: \"Email\", image: '' },\r\n        { value: \"NUMBER\", label: \"Number\", image: '' },\r\n        { value: \"URL\", label: \"Url\", image: '' },\r\n        { value: \"PASSWORD\", label: \"Password\", image: '' },\r\n        { value: \"DATE_TIME\", label: \"Date Time\", image: '' },\r\n        { value: \"TOGGLE_SWITCH\", label: \"Toggle Switch\", image: '' },\r\n        { value: \"SLIDER\", label: \"Slider\", image: '' },\r\n        { value: \"CHECK_BOX\", label: \"Check Box\", image: '' },\r\n        { value: \"FILE_PICKER\", label: \"File Picker\", image: '' },\r\n        { value: \"RADIO_BUTTON\", label: \"Radio Button\", image: '' },\r\n        { value: \"SELECTION_MATRIX\", label: \"Selection Matrix\", image: '' }\r\n    ]\r\n};\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n  selector: 'lib-confirm-dialog',\r\n  templateUrl: './confirm-dialog.component.html',\r\n  styleUrls: ['./confirm-dialog.component.scss']\r\n})\r\nexport class ConfirmDialogComponent {\r\n\r\n  constructor(\r\n    private dialogRef: MatDialogRef<ConfirmDialogComponent>,\r\n    @Inject(MAT_DIALOG_DATA) public data: { message: string }\r\n  ) {}\r\n\r\n  dismiss() {\r\n    this.dialogRef.close();\r\n  }\r\n\r\n  confirm() {\r\n    this.dialogRef.close('yes');\r\n  }\r\n}\r\n","<div class=\"modal-body\">\r\n    <div class=\"modal-header p-2\">\r\n      <button\r\n        type=\"button\"\r\n        class=\"btn-close\"\r\n        data-bs-dismiss=\"modal\"\r\n        aria-label=\"Close\"\r\n        (click)=\"dismiss()\"\r\n      >\r\n        <span aria-hidden=\"true\"></span>\r\n      </button>\r\n    </div>\r\n    <div class=\"modal-body p-2\">\r\n          <div class=\"sec-title mb-3\">\r\n        <h4 class=\"mb-0 text-center\">Are you sure ?</h4>\r\n      </div>\r\n      <div class=\"d-flex justify-content-center\">\r\n        <div>\r\n          <p class=\"text-center\">{{ data?.message }}</p>\r\n        </div>\r\n      </div>\r\n    </div>\r\n    <div class=\"sec-buttons d-flex justify-content-center mb-4 gap-4\">\r\n      <button class=\"btn cancelBtn\" (click)=\"dismiss()\">\r\n        No\r\n      </button>\r\n      <button class=\"btn submitBtn\" (click)=\"confirm()\">\r\n        Yes\r\n      </button>\r\n    </div>\r\n  </div>\r\n  ","// api.service.ts\r\n\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\nimport { DataService } from \"./data.service\";\r\nimport { AuthService } from \"./auth.service\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\nimport { Module } from \"../lib/model/module-model\";\r\n\r\n@Injectable({\r\n  providedIn: \"root\",\r\n})\r\nexport class ApiService {\r\n  apiUrl: string = \"\";\r\n  header: any;\r\n  constructor(\r\n    private http: HttpClient,\r\n    private dataService: DataService,\r\n    private authService: AuthService\r\n  ) {\r\n    this.dataService.apiUrl$.subscribe((data) => {\r\n      this.apiUrl = data;\r\n    });\r\n\r\n    this.authService.header$.subscribe((data) => {\r\n      this.header = data;\r\n    });\r\n  }\r\n\r\n  getModuleById(moduleId: string) {\r\n    const headers = new HttpHeaders({\r\n        'Content-Type': this.header.contentType,\r\n        'auth-user': this.header.authUser, // Add any authorization token if required\r\n    });\r\n    const endpoint = `${this.apiUrl}/api/modules/${moduleId}`;\r\n    return this.http.get(endpoint,{headers});\r\n  }\r\n\r\n  getElementType() {\r\n    const endpoint = `${this.apiUrl}/api/public/element-types`;\r\n    const headers = new HttpHeaders({\r\n      \"Content-Type\": this.header.contentType,\r\n      \"auth-user\": this.header.authUser,\r\n    });\r\n    const body = {\r\n      // Your request body content here\r\n    };\r\n    const options = {\r\n      headers: headers,\r\n      body: body,\r\n    };\r\n    return this.http.get(endpoint, options);\r\n  }\r\n\r\n  generateId(): string {\r\n    return uuidv4();\r\n  }\r\n\r\n\r\n  createModule(moduleForm: Module): Observable<any> {\r\n\r\n    const payload = JSON.stringify(this.dataForm(moduleForm, ''));\r\n    const headers = new HttpHeaders({\r\n        'Content-Type': this.header.contentType,\r\n        'auth-user': this.header.authUser, // Add any authorization token if required\r\n    });\r\n    const endpoint = `${this.apiUrl}/api/modules`;\r\n\r\n    return this.http.post<any>(endpoint, payload, { headers });\r\n  }\r\n\r\n  updateModule(moduleForm: Module, moduleId: string): Observable<any> {\r\n    \r\n    const payload = JSON.stringify(this.dataForm(moduleForm, moduleId));\r\n    \r\n    const headers = new HttpHeaders({\r\n        'Content-Type': this.header.contentType,\r\n        'auth-user': this.header.authUser, // Add any authorization token if required\r\n    });\r\n\r\n    \r\n    const endpoint = `${this.apiUrl}/api/modules/${moduleId}`;\r\n\r\n    return this.http.put<any>(endpoint, payload, { headers });\r\n    \r\n  }\r\n\r\n  private dataForm(moduleForm: Module, moduleId: string) {\r\n    return {\r\n      id: moduleId,\r\n      name: moduleForm.name,\r\n      webhooks: moduleForm.webhooks.map((webhook: any) => ({\r\n        id: webhook?.id,\r\n        webhookName: webhook.webhookName,\r\n        webhookUrlType: webhook.webhookUrlType,\r\n        webhookTriggerTypes: webhook.webhookTriggerTypes,\r\n        requestType: webhook.requestType,\r\n        url: webhook.url,\r\n        headers: this.transformValues(webhook.headers),\r\n        params: this.transformValues(webhook.params),\r\n        pathVariables: this.transformValues(webhook.pathVariables),\r\n        requestBodies: this.transformValues(webhook.requestBodies),\r\n      })),\r\n      parentModuleId: moduleForm.parentModuleId,\r\n      referenceModuleId: moduleForm.referenceModuleId,\r\n      configuration: {\r\n        ...moduleForm.configuration,\r\n        saveInterval: parseInt(moduleForm.configuration.saveInterval?.value),\r\n        questionNumbering:\r\n          moduleForm.configuration.questionNumbering ||\r\n          \"NUMBER_SMALLALPHABET_SMALLROMAN\",\r\n        navigation: moduleForm.configuration.navigation || \"TAB\",\r\n        fontFamily: moduleForm.configuration.fontFamily?.value,\r\n        fontSize: moduleForm.configuration.fontSize,\r\n        fileFormats: moduleForm.configuration.fileFormats?.map(\r\n          (fileFormat: any) => fileFormat.value\r\n        ),\r\n      },\r\n      questions: moduleForm.questions,\r\n      emitters: this.transformValues(moduleForm?.emitters || []),\r\n    };\r\n  }\r\n\r\n  private transformValues(items: any[]): any[] {\r\n    return this.filterEmptyObjects(items).map((item: any) => {\r\n      const baseItem = {\r\n        id: item?.id,\r\n        keyName: item.name,\r\n        valueSource: item.valueForm,\r\n      };\r\n      return item.valueForm === \"QUESTION\"\r\n        ? { ...baseItem, questionId: item.value }\r\n        : item.valueForm === \"CALCULATE\"\r\n        ? baseItem\r\n        : { ...baseItem, inputValue: item.value };\r\n    });\r\n  }\r\n\r\n  filterEmptyObjects(arr: any) {\r\n    // Filter out objects where all fields are empty or null\r\n    return arr.filter((item: any) =>\r\n      Object.values(item).some((value) => value !== \"\" && value !== null)\r\n    );\r\n  }\r\n}\r\n","import {\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ElementRef,\r\n  EventEmitter,\r\n  Input,\r\n  Output,\r\n  QueryList,\r\n  ViewChildren,\r\n} from \"@angular/core\";\r\nimport { ApiService } from \"../../../services/api.service\";\r\nimport {\r\n  AbstractControl,\r\n  FormArray,\r\n  FormBuilder,\r\n  FormGroup,\r\n  Validators,\r\n} from \"@angular/forms\";\r\nimport { DropdownLibOption, DropdownOption } from \"../../model/module-model\";\r\nimport { CONSTANTS } from \"../../constant/module.constant\";\r\nimport { Subject } from \"rxjs\";\r\nimport { ConfirmDialogComponent } from \"../confirm-dialog/confirm-dialog.component\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n  selector: \"lib-module\",\r\n  templateUrl: \"./module.component.html\",\r\n  styleUrls: [\"./module.component.scss\"],\r\n})\r\nexport class ModuleComponent {\r\n  @Input() moduleId: string = \"\";\r\n  private dialogRef?: MatDialogRef<ConfirmDialogComponent>;\r\n  constructor(\r\n    private apiService: ApiService,\r\n    private fb: FormBuilder,\r\n    private cdr: ChangeDetectorRef,\r\n    private toastrService: ToastrService,\r\n    public dialog: MatDialog\r\n  ) {}\r\n\r\n  ngOnInit() {\r\n    this.getModuleDetails();\r\n\r\n    this.apiService.getElementType().subscribe((types: any) => {\r\n      const typesToRemove = [\r\n        \"LOCATION\",\r\n        \"TERMS_AND_CONDITION\",\r\n        \"SIGNATURE\",\r\n        \"HELP_TEXT\",\r\n      ];\r\n      const filteredData = types.filter(\r\n        (item: any) => !typesToRemove.includes(item.value)\r\n      );\r\n\r\n      this.elementTypeOptions = filteredData;\r\n      this.selectedElementType = types[0];\r\n    });\r\n\r\n    this.moduleForm = this.fb.group({\r\n      name: [\"\", Validators.required],\r\n      parentModuleId: \"\",\r\n      referenceModuleId: \"\",\r\n      configuration: this.fb.group({\r\n        saveAutomatically: false,\r\n        saveInterval: this.selectedInterval,\r\n        customizeFont: false,\r\n        fontFamily: this.selectedFontFamily,\r\n        fontSize:'',\r\n        enableDataExport: false,\r\n        fileFormats: [this.selectedFileFormats],\r\n        enableQuestionNumbering: false,\r\n        questionNumbering: this.selectedQuestionNumbering,\r\n        enableGoogleRecaptcha: false,\r\n        navigation: this.navigationOption,\r\n        markAllQuestionsAsRequired: false,\r\n      }),\r\n      webhooks: this.fb.array([]),\r\n      questions: this.fb.array([]),\r\n      emitters: this.fb.array([]),\r\n    });\r\n    this.openPanelsWebhook = new Array(this.webhooks?.length).fill(false);\r\n    this.openPanelsHeader = new Array(this.headers?.length).fill(false);\r\n    this.openPanelsParam = new Array(this.params?.length).fill(false);\r\n    this.openPanelsPathVariable = new Array(this.pathVariables?.length).fill(\r\n      false\r\n    );\r\n    this.openPanelsRequestBody = new Array(this.requestBodies?.length).fill(\r\n      false\r\n    );\r\n    if (this._moduleData?.result) {\r\n      this.setModuleFormValues(this._moduleData.result);\r\n      this.cdr.detectChanges();\r\n    }\r\n\r\n    this.moduleForm.valueChanges.subscribe((value) => {\r\n      this.moduleDataChange.emit(value);\r\n      this.cdr.detectChanges();\r\n    });\r\n    this.moduleForm.get('configuration.customizeFont')?.valueChanges.subscribe((checked: boolean) => {\r\n      if (!checked) {\r\n        this.moduleForm.get('configuration')?.patchValue({\r\n          fontSize: '',\r\n          fontFamily: null\r\n        });\r\n        this.selectedFontFamily = []; // clear dropdown selection\r\n      }\r\n    });\r\n  }\r\n\r\n  getModuleDetails() {\r\n    this.apiService.getModuleById(this.moduleId).subscribe({\r\n      next: (response: any) => {\r\n        const values = response.result;\r\n        if (values.configuration) {\r\n          values.configuration.fontFamily = CONSTANTS.FONTFAMILY.filter((item) =>\r\n            item.value == values.configuration?.fontFamily\r\n          );\r\n          values.configuration.fileFormats = CONSTANTS.FILEFORMATS.filter((item) =>\r\n            values.configuration?.fileFormats.includes(item.value)\r\n          );\r\n          values.configuration.saveInterval = CONSTANTS.INTERVALS.filter((item) =>\r\n            parseInt(item.value) === values.configuration?.saveInterval\r\n          );\r\n        }\r\n        this.setModuleFormValues(values);\r\n      },\r\n      error: (error: any) => {},\r\n    });\r\n  }\r\n\r\n  @ViewChildren(\"saveQuestion\") SaveQuestions!: QueryList<ElementRef>;\r\n  @Input() modules!: any;\r\n  private _moduleData: any;\r\n  @Input() set moduleData(value: any) {\r\n    this._moduleData = value;\r\n    if (this._moduleData?.result) {\r\n      this.moduleId = this._moduleData.result.id;\r\n      this.setModuleFormValues(this._moduleData.result);\r\n    }\r\n  }\r\n  get moduleData(): any {\r\n    return this._moduleData.value;\r\n  }\r\n  @Output() moduleDataChange = new EventEmitter<any>();\r\n  @Output() saveModule: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() deleteModuleId: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() removeParameterByIndex: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() goBackToList = new EventEmitter<boolean>();\r\n\r\n  moduleForm!: FormGroup;\r\n  openPanelsWebhook: boolean[] = [];\r\n  openPanelsHeader: boolean[] = [];\r\n  openPanelsParam: boolean[] = [];\r\n  openPanelsPathVariable: boolean[] = [];\r\n  openPanelsRequestBody: boolean[] = [];\r\n  options: DropdownOption[] = CONSTANTS.HEADEROPTIONS;\r\n  paramsOptions: DropdownOption[] = CONSTANTS.PARAMSOPTIONS;\r\n  requestTypeOptions: DropdownOption[] = CONSTANTS.APIOPTIONS;\r\n  webhookTriggerOptionss: DropdownOption[] = CONSTANTS.WEBHOOKTRIGGEROPTION;\r\n  emitterOptions: DropdownOption[] = CONSTANTS.EMITTEROPTIONS;\r\n  intervals: DropdownLibOption[] = CONSTANTS.INTERVALS;\r\n  selectedInterval: DropdownOption[] = [CONSTANTS.INTERVALS[0]];\r\n  fontFamily: DropdownLibOption[] = CONSTANTS.FONTFAMILY;\r\n  selectedFontFamily: DropdownOption[] = [];\r\n  fontSize: DropdownLibOption[] = CONSTANTS.FONTSIZE;\r\n  fileFormats: DropdownLibOption[] = CONSTANTS.FILEFORMATS;\r\n  selectedFileFormats: DropdownOption[] = [];\r\n  selectedQuestionNumbering: string = \"NUMBER_NUMBER\";\r\n  navigationOption: string = \"TAB\";\r\n  elementTypeOptions: DropdownLibOption[] = [];\r\n  selectedElementType: DropdownOption[] = [];\r\n  isQuestionSelectedHeader: boolean[][] = [];\r\n  isQuestionSelectedParam: boolean[][] = [];\r\n  isQuestionSelectedPath: boolean[][] = [];\r\n  isQuestionSelectedRequest: boolean[][] = [];\r\n  labelChangeSubjects: { [key: number]: Subject<string> } = {};\r\n  showError: boolean = false;\r\n  emitterOpened: boolean = true;\r\n\r\n  onFieldChange(newSelectedItems: any, type: string) {\r\n    switch (type) {\r\n      case \"navigation\":\r\n        this.navigationOption = newSelectedItems?.target?.value;\r\n        break;\r\n      case \"exportfile\":\r\n        this.selectedFileFormats = newSelectedItems;\r\n        break;\r\n      case \"intervals\":\r\n        this.selectedInterval = newSelectedItems;\r\n        break;\r\n      case \"fontFamily\":\r\n        this.selectedFontFamily = newSelectedItems;\r\n        break;\r\n      default:\r\n        console.warn(`Unhandled dropdown type: ${type}`);\r\n    }\r\n  }\r\n\r\n  setFormValues() {\r\n    return this.fb.group({\r\n      saveInterval: this.selectedInterval,\r\n      fontFamily: this.selectedFontFamily,\r\n      fileFormats: [this.selectedFileFormats],\r\n      questionNumbering: this.selectedQuestionNumbering,\r\n      navigation: this.navigationOption,\r\n    });\r\n  }\r\n\r\n  isChecked(field: string): boolean {\r\n    return this.moduleForm.get(\"configuration\")?.get(field)?.value;\r\n  }\r\n\r\n  setModuleFormValues(values: any) {\r\n    if (values.configuration) {\r\n      this.selectedFontFamily = values.configuration?.fontFamily?values.configuration.fontFamily:[];\r\n      this.selectedFileFormats = values.configuration?.fileFormats;\r\n      this.selectedInterval = values.configuration?.saveInterval;\r\n      this.selectedQuestionNumbering = values.configuration?.questionNumbering;\r\n      this.navigationOption = values.configuration?.navigation;\r\n    }\r\n\r\n    const configuration = {\r\n      ...values.configuration,\r\n      fontFamily: this.selectedFontFamily,\r\n      fileFormats: this.selectedFileFormats,\r\n      saveInterval: this.selectedInterval,\r\n    };\r\n    const formValues = {\r\n      name: values.name,\r\n      id: values.id,\r\n      parentModuleId: values.parentModuleId,\r\n      referenceModuleId: values.referenceModuleId,\r\n      configuration: configuration,\r\n      questions: values.questions,\r\n    };\r\n    if (formValues) {\r\n      this.moduleForm.patchValue(formValues);\r\n    }\r\n    const questionsArray = this.moduleForm?.get(\"questions\") as FormArray;\r\n    if (questionsArray) {\r\n      questionsArray.clear();\r\n    }\r\n    values.questions?.forEach((question: any) => {\r\n      const questionFormGroup = this.fb.group({\r\n        id: [question.id],\r\n        elementType: [question.elementType],\r\n        label: [question.label],\r\n        customElementId: [question.customElementId]\r\n      });\r\n      if (questionsArray) {\r\n        questionsArray.push(questionFormGroup);\r\n      }\r\n    });\r\n\r\n    const validQuestionIds = values.questions?.map((q: any) => q.id) || [];\r\n\r\n    const webhooksArray = this.moduleForm?.get(\"webhooks\") as FormArray;\r\n    if (webhooksArray) {\r\n      webhooksArray.clear();\r\n    }\r\n    values.webhooks?.forEach((webhook: any, index: number) => {\r\n      const webhookFormGroup = this.fb.group({\r\n        id: [webhook.id],\r\n        webhookName: [webhook.webhookName, Validators.required],\r\n        webhookTriggerTypes: [webhook.webhookTriggerTypes, Validators.required],\r\n        webhookUrlType: [\r\n          webhook.webhookUrlType === \"INTERNAL\" ? \"INTERNAL\" : \"EXTERNAL\",\r\n        ],\r\n        requestType: [webhook.requestType as \"GET\" | \"POST\" | \"PUT\" | \"DELETE\"],\r\n        url: [webhook.url, Validators.required],\r\n        headers: this.fb.array([]),\r\n        params: this.fb.array([]),\r\n        pathVariables: this.fb.array([]),\r\n        requestBodies: this.fb.array([]),\r\n      });\r\n\r\n      this.addFormArrayItems(\r\n        webhookFormGroup.get(\"headers\") as FormArray,\r\n        webhook?.headers,\r\n        index,\r\n        \"headers\"\r\n      );\r\n      this.addFormArrayItems(\r\n        webhookFormGroup.get(\"params\") as FormArray,\r\n        webhook?.params,\r\n        index,\r\n        \"params\"\r\n      );\r\n      this.addFormArrayItems(\r\n        webhookFormGroup.get(\"pathVariables\") as FormArray,\r\n        webhook?.pathVariables,\r\n        index,\r\n        \"path\"\r\n      );\r\n      this.addFormArrayItems(\r\n        webhookFormGroup.get(\"requestBodies\") as FormArray,\r\n        webhook?.requestBodies,\r\n        index,\r\n        \"requestBody\"\r\n      );\r\n      if (webhooksArray) {\r\n        webhooksArray.push(webhookFormGroup);\r\n      }\r\n    });\r\n\r\n    const emittersArray = this.moduleForm?.get(\"emitters\") as FormArray;\r\n    if (emittersArray) {\r\n      emittersArray.clear();\r\n    }\r\n    values.emitters?.forEach((emitter: any) => {\r\n      const valueForm = emitter.valueForm || emitter.valueSource || \"\";\r\n      const rawValue =\r\n        emitter.value || emitter.inputValue || emitter.questionId;\r\n\r\n      // ❗ Clear value if question was deleted and valueForm is QUESTION\r\n      const finalValue =\r\n        valueForm === \"QUESTION\" && !validQuestionIds.includes(rawValue)\r\n          ? null\r\n          : rawValue;\r\n\r\n      const emitterFormGroup = this.fb.group({\r\n        name: [emitter.keyName || emitter.name || \"\", Validators.required],\r\n        valueForm: [valueForm, Validators.required],\r\n        value: [finalValue, Validators.required],\r\n        id: emitter.id || null,\r\n      });\r\n\r\n      // Clear value if valueForm changes (runtime user interaction)\r\n      emitterFormGroup.get(\"valueForm\")?.valueChanges.subscribe(() => {\r\n        const valueControl = emitterFormGroup.get(\"value\");\r\n        valueControl?.reset(null);\r\n        valueControl?.markAsTouched();\r\n        valueControl?.markAsDirty();\r\n        valueControl?.updateValueAndValidity();\r\n      });\r\n\r\n      emittersArray.push(emitterFormGroup);\r\n    });\r\n    //this.initializeLabelListeners();\r\n  }\r\n\r\n  private addFormArrayItems(\r\n    formArray: FormArray,\r\n    items: any[] = [],\r\n    webhookIndex: number,\r\n    type: string\r\n  ) {\r\n    items?.forEach((item, index) => {\r\n      const isDisabled =\r\n        item.valueSource === \"CALCULATE\" || item.valueForm === \"CALCULATE\";\r\n      this.setQuestionSection(webhookIndex, index, type, item);\r\n      const formGroup: FormGroup = this.fb.group({\r\n        name: [item.keyName || item.name || \"\", Validators.required],\r\n        valueForm: [\r\n          item.valueSource || item.valueForm || \"\",\r\n          Validators.required,\r\n        ],\r\n        value: [\r\n          {\r\n            value: item.inputValue || item.value || item.questionId || \"\",\r\n            disabled: isDisabled,\r\n          },\r\n          Validators.required,\r\n        ],\r\n        id: [item.id || null],\r\n      });\r\n      formArray.push(formGroup);\r\n    });\r\n  }\r\n\r\n  deleteModule() {\r\n    this.deleteModuleId.emit(this.moduleId);\r\n  }\r\n\r\n  createQuestion(): FormGroup {\r\n    return this.fb.group({\r\n      id: [this.apiService.generateId()],\r\n      label: [\"\"],\r\n      elementType: [\"TEXT_AREA\"],\r\n      customElementId: [\"\"]\r\n    });\r\n  }\r\n\r\n  createWebhook(): FormGroup {\r\n    return this.fb.group({\r\n      id: [],\r\n      webhookName: [\"\", Validators.required],\r\n      webhookUrlType: [\"EXTERNAL\"],\r\n      requestType: [\"GET\"],\r\n      webhookTriggerTypes: [\"\", Validators.required],\r\n      url: [\"\", Validators.required],\r\n      params: this.fb.array([]),\r\n      headers: this.fb.array([]),\r\n      requestBodies: this.fb.array([]),\r\n      pathVariables: this.fb.array([]),\r\n    });\r\n  }\r\n\r\n  createFeilds(): FormGroup {\r\n    return this.fb.group({\r\n      name: [null, Validators.required],\r\n      valueForm: [null, Validators.required],\r\n      value: [{ value: null, disabled: true }],\r\n      id: null,\r\n    });\r\n  }\r\n\r\n  get webhooks(): FormArray {\r\n    return this.moduleForm.get(\"webhooks\") as FormArray;\r\n  }\r\n\r\n  get questions(): FormArray {\r\n    return this.moduleForm.get(\"questions\") as FormArray;\r\n  }\r\n\r\n  get emitters(): FormArray {\r\n    return this.moduleForm.get(\"emitters\") as FormArray;\r\n  }\r\n\r\n  get headers(): FormArray {\r\n    return this.webhooks?.at(0)?.get(\"headers\") as FormArray;\r\n  }\r\n\r\n  get params(): FormArray {\r\n    return this.webhooks?.at(0)?.get(\"params\") as FormArray;\r\n  }\r\n\r\n  get pathVariables(): FormArray {\r\n    return this.webhooks?.at(0)?.get(\"pathVariables\") as FormArray;\r\n  }\r\n\r\n  get requestBodies(): FormArray {\r\n    return this.webhooks?.at(0)?.get(\"requestBodies\") as FormArray;\r\n  }\r\n\r\n  addWebhook() {\r\n    this.webhooks.push(this.createWebhook());\r\n    this.openPanelsWebhook[this.webhooks?.length - 1] = true;\r\n  }\r\n\r\n  addQuestion(): void {\r\n    //const newIndex = this.questions.length;\r\n    this.questions.push(this.createQuestion());\r\n    //this.initializeLabelListener(newIndex);\r\n  }\r\n\r\n  addEmitters() {\r\n    this.emitters.push(this.createEmitterFeilds());\r\n  }\r\n\r\n  createEmitterFeilds(): FormGroup {\r\n    return this.fb.group({\r\n      name: [null, Validators.required],\r\n      valueForm: [null, Validators.required],\r\n      value: [null, Validators.required],\r\n      id: null,\r\n    });\r\n  }\r\n\r\n  removeWebhook(index: number) {\r\n    this.dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n      width: '480px',\r\n      height: '200px',\r\n      data: {\r\n        message: 'Do you want to delete this webhook?'\r\n      }\r\n    });\r\n  \r\n    this.dialogRef.afterClosed().subscribe(result => {\r\n      if (result === 'yes') {\r\n        this.webhooks.removeAt(index);\r\n      }\r\n    });\r\n  }\r\n\r\n  removeQuestion(index: number) {\r\n    this.dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n      width: '480px',\r\n      height: '200px',\r\n      panelClass: 'confirm-dialog-container',\r\n      data: {\r\n        message: 'Do you want to delete this question?'\r\n      },\r\n      // optionally: disableClose: true, panelClass, etc.\r\n    });\r\n\r\n    this.dialogRef.afterClosed().subscribe((result: any) => {\r\n      if (result === 'yes') {\r\n        const questionsArray = this.moduleForm.get('questions') as FormArray;\r\n        const emittersArray = this.moduleForm.get('emitters') as FormArray;\r\n\r\n        // Get the deleted questionId\r\n        const deletedQuestionId = questionsArray.at(index)?.get('id')?.value;\r\n\r\n        // Remove the question\r\n        questionsArray.removeAt(index);\r\n\r\n        // Loop through emitters and clear value if it's referencing the deleted question\r\n        emittersArray.controls.forEach((emitterGroup: AbstractControl) => {\r\n          const group = emitterGroup as FormGroup;\r\n          const valueForm = group.get('valueForm')?.value;\r\n          const value = group.get('value')?.value;\r\n\r\n          if (valueForm === 'QUESTION' && value === deletedQuestionId) {\r\n            const valueControl = group.get('value');\r\n            valueControl?.reset(null);\r\n            valueControl?.markAsTouched();\r\n            valueControl?.markAsDirty();\r\n            valueControl?.updateValueAndValidity();\r\n          }\r\n        });\r\n\r\n        this.cdr.detectChanges();\r\n      }\r\n    });\r\n  }\r\n\r\n  getParameters(index: number, filedName: string): FormArray {\r\n    return this.webhooks?.at(index)?.get(filedName) as FormArray;\r\n  }\r\n\r\n  addParameter(webhookIndex: number, filedName: string) {\r\n    this.showError = false;\r\n    this.getParameters(webhookIndex, filedName).push(this.createFeilds());\r\n  }\r\n\r\n  removeParameter(\r\n    webhookIndex: number,\r\n    parameterIndex: number,\r\n    filedName: string\r\n  ) {\r\n    // keep your original emit (if you want it before confirmation)\r\n    this.removeParameterByIndex.emit({\r\n      webhookIndex: webhookIndex,\r\n      parameterIndex: parameterIndex,\r\n      filedName: filedName,\r\n      moduleForm: this.moduleForm,\r\n    });\r\n  \r\n    let title = 'header';\r\n    if (filedName === 'params') {\r\n      title = 'parameter';\r\n    } else if (filedName === 'pathVariables') {\r\n      title = 'path variable';\r\n    } else if (filedName === 'requestBodies') {\r\n      title = 'request body';\r\n    }\r\n  \r\n    this.dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n      width: '480px',\r\n      height: '200px',\r\n      disableClose: true, // optional: prevent closing by backdrop/click\r\n      data: {\r\n        message: `Do you want to delete this ${title}?`\r\n      }\r\n    });\r\n  \r\n    this.dialogRef.afterClosed().subscribe((result: any) => {\r\n      if (result === 'yes') {\r\n        this.getParameters(webhookIndex, filedName).removeAt(parameterIndex);\r\n      }\r\n    });\r\n  }\r\n\r\n  isInvalid(index: number, fieldName: string): boolean {\r\n    const webhooksArray = this.moduleForm.get(\"webhooks\") as FormArray;\r\n    const field = webhooksArray.at(index)?.get(fieldName);\r\n    return (\r\n      field?.invalid &&\r\n      (field?.dirty || field?.touched || (this.moduleForm as any).submitted)\r\n    );\r\n  }\r\n\r\n  onSubmit(isQuestion?: boolean) {\r\n    \r\n    if (this.moduleForm.invalid) {\r\n      this.showError = true;\r\n      this.moduleForm.markAllAsTouched();\r\n      return;\r\n    }\r\n    const moduleFormSettings = this.setFormValues();\r\n    this.moduleForm.patchValue({ configuration: moduleFormSettings.value });\r\n    this.setModuleFormValues(this.moduleForm.value);\r\n\r\n    if (this.moduleId) {\r\n      this.apiService\r\n        .updateModule(this.moduleForm.value, this.moduleId)\r\n        .subscribe({\r\n          next: (response) => {\r\n            this.getModuleDetails();\r\n            this.toastrService.success(response.message);\r\n            this.saveModule.emit({ status: \"success\" });\r\n          },\r\n          error: (error: any) => {},\r\n        });\r\n    } else {\r\n      this.apiService.createModule(this.moduleForm.value).subscribe({\r\n        next: (response) => {\r\n          // this.formData = response.result;\r\n          this.getModuleDetails();\r\n          this.toastrService.success(response.message);\r\n          this.saveModule.emit({ status: \"success\" });\r\n        },\r\n        error: (error: any) => {},\r\n      });\r\n    }\r\n    this.cdr.detectChanges();\r\n  }\r\n\r\n  toggleAccordion(index: number, section: string) {\r\n    if (section === \"webhook\") {\r\n      this.openPanelsWebhook[index] = !this.openPanelsWebhook[index];\r\n    } else if (section === \"header\") {\r\n      this.openPanelsHeader[index] = !this.openPanelsHeader[index];\r\n    } else if (section === \"param\") {\r\n      this.openPanelsParam[index] = !this.openPanelsParam[index];\r\n    } else if (section === \"pathvariable\") {\r\n      this.openPanelsPathVariable[index] = !this.openPanelsPathVariable[index];\r\n    } else if (section === \"requestBody\") {\r\n      this.openPanelsRequestBody[index] = !this.openPanelsRequestBody[index];\r\n    }\r\n  }\r\n\r\n  isOpen(index: number, section: string): boolean {\r\n    if (section === \"webhook\") {\r\n      return this.openPanelsWebhook[index];\r\n    } else if (section === \"header\") {\r\n      return this.openPanelsHeader[index];\r\n    } else if (section === \"param\") {\r\n      return this.openPanelsParam[index];\r\n    } else if (section === \"pathvariable\") {\r\n      return this.openPanelsPathVariable[index];\r\n    } else if (section === \"requestBody\") {\r\n      return this.openPanelsRequestBody[index];\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n\r\n  goBack() {\r\n    this.goBackToList.emit(true);\r\n  }\r\n\r\n  toggleSelected(index: number, pattern: any) {\r\n    const control = this.moduleForm\r\n      .get(\"configuration\")\r\n      ?.get(\"questionNumbering\");\r\n    if (control?.value) {\r\n      control.setValue(index);\r\n      this.selectedQuestionNumbering = pattern;\r\n    }\r\n  }\r\n\r\n  onValueTypeChange(data: any, i: number, j: number, type: string): void {\r\n    this.setQuestionSection(i, j, type, data);\r\n  }\r\n\r\n  initializeIndex(i: number, j: number, type: string): void {\r\n    if (type === \"headers\") {\r\n      if (!this.isQuestionSelectedHeader[i]) {\r\n        this.isQuestionSelectedHeader[i] = [];\r\n      }\r\n      if (this.isQuestionSelectedHeader[i][j] === undefined) {\r\n        this.isQuestionSelectedHeader[i][j] = false;\r\n      }\r\n    } else if (type === \"params\") {\r\n      if (!this.isQuestionSelectedParam[i]) {\r\n        this.isQuestionSelectedParam[i] = [];\r\n      }\r\n      if (this.isQuestionSelectedParam[i][j] === undefined) {\r\n        this.isQuestionSelectedParam[i][j] = false;\r\n      }\r\n    } else if (type === \"path\") {\r\n      if (!this.isQuestionSelectedPath[i]) {\r\n        this.isQuestionSelectedPath[i] = [];\r\n      }\r\n      if (this.isQuestionSelectedPath[i][j] === undefined) {\r\n        this.isQuestionSelectedPath[i][j] = false;\r\n      }\r\n    } else if (type === \"requestBody\") {\r\n      if (!this.isQuestionSelectedRequest[i]) {\r\n        this.isQuestionSelectedRequest[i] = [];\r\n      }\r\n      if (this.isQuestionSelectedRequest[i][j] === undefined) {\r\n        this.isQuestionSelectedRequest[i][j] = false;\r\n      }\r\n    }\r\n  }\r\n\r\n  updateDisabledStates(\r\n    webhookIndex: number,\r\n    type: string,\r\n    item: any,\r\n    index: number\r\n  ): void {\r\n    //const parameters = this.getParameters(webhookIndex, type);\r\n    if (type === \"path\") {\r\n      type = \"pathVariables\";\r\n    } else if (type === \"requestBody\") {\r\n      type = \"requestBodies\";\r\n    }\r\n    const webhooks: any = this.moduleForm.get(\"webhooks\");\r\n    const parameters = webhooks?.at(webhookIndex)?.get(type);\r\n    const parameter = parameters?.at(index);\r\n    parameter?.get(\"value\")?.setValue(\"\");\r\n    if (\r\n      item?.target?.value === \"CALCULATE\" ||\r\n      item.valueSource === \"CALCULATE\" ||\r\n      item.valueForm === \"CALCULATE\"\r\n    ) {\r\n      parameter?.get(\"value\")?.disable();\r\n    } else {\r\n      parameter?.get(\"value\")?.enable();\r\n    }\r\n    const webhook = webhooks?.at(webhookIndex) as FormGroup;\r\n    const typeControl = webhook?.get(type) as FormArray;\r\n    typeControl?.setControl(index, parameter);\r\n  }\r\n\r\n  setQuestionSection(\r\n    webhookIndex: number,\r\n    index: number,\r\n    type: string,\r\n    item: any\r\n  ): void {\r\n    this.updateDisabledStates(webhookIndex, type, item, index);\r\n\r\n    if (type === \"headers\") {\r\n      if (!this.isQuestionSelectedHeader[webhookIndex]) {\r\n        this.isQuestionSelectedHeader[webhookIndex] = [];\r\n      }\r\n      this.isQuestionSelectedHeader[webhookIndex][index] =\r\n        (item?.target?.value || item.valueSource || item.valueForm) ===\r\n        \"QUESTION\";\r\n    } else if (type === \"params\") {\r\n      if (!this.isQuestionSelectedParam[webhookIndex]) {\r\n        this.isQuestionSelectedParam[webhookIndex] = [];\r\n      }\r\n      this.isQuestionSelectedParam[webhookIndex][index] =\r\n        (item?.target?.value || item.valueSource || item.valueForm) ===\r\n        \"QUESTION\";\r\n    } else if (type === \"path\") {\r\n      if (!this.isQuestionSelectedPath[webhookIndex]) {\r\n        this.isQuestionSelectedPath[webhookIndex] = [];\r\n      }\r\n      this.isQuestionSelectedPath[webhookIndex][index] =\r\n        (item?.target?.value || item.valueSource || item.valueForm) ===\r\n        \"QUESTION\";\r\n    } else if (type === \"requestBody\") {\r\n      if (!this.isQuestionSelectedRequest[webhookIndex]) {\r\n        this.isQuestionSelectedRequest[webhookIndex] = [];\r\n      }\r\n      this.isQuestionSelectedRequest[webhookIndex][index] =\r\n        (item?.target?.value || item.valueSource || item.valueForm) ===\r\n        \"QUESTION\";\r\n    }\r\n  }\r\n\r\n  trackByIndex(index: number, item: any) {\r\n    return item.value.id || index;\r\n  }\r\n\r\n  getTriggerValues(i: number): string {\r\n    const triggers =\r\n      this.moduleForm.value.webhooks[i].webhookTriggerTypes || [];\r\n\r\n    return triggers\r\n      .map((trigger: any) =>\r\n        typeof trigger === \"string\" ? trigger : trigger.value\r\n      )\r\n      .join(\" - \");\r\n  }\r\n\r\n  toggleEmitter() {\r\n    this.emitterOpened = !this.emitterOpened;\r\n  }\r\n\r\n  removeEmitter(index: number): void {\r\n\r\n    this.dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n      width: '480px',\r\n      height: '200px',\r\n      disableClose: true, // prevents accidental backdrop click dismissal\r\n      data: {\r\n        message: `Do you want to delete this emitter?`\r\n      }\r\n    });\r\n  \r\n    this.dialogRef.afterClosed().subscribe((result: any) => {\r\n      if (result === 'yes') {\r\n        this.emitters.removeAt(index);\r\n      }\r\n    });\r\n  }\r\n\r\n  onValueFormChange(index: number): void {\r\n    const emittersArray = this.moduleForm.get(\"emitters\") as FormArray;\r\n    const emitterGroup = emittersArray.at(index) as FormGroup;\r\n\r\n    if (emitterGroup) {\r\n      emitterGroup.get(\"value\")?.reset(null);\r\n    }\r\n  }\r\n}\r\n","<div class=\"module-container\">\r\n    <form [formGroup]=\"moduleForm\">\r\n      <div class=\"button-container back-icon\">\r\n        <button class=\"btn-icon\" (click)=\"goBack()\">\r\n          <img src=\"/assets/icons/back-icon.svg\" alt=\"back\" />\r\n        </button>\r\n      </div>\r\n      <div class=\"form-group\">\r\n        <label for=\"moduleName\"\r\n          >{{ \"Module Name\"  }}<span class=\"text-danger\"> *</span></label\r\n        >\r\n        <input\r\n          id=\"moduleName\"\r\n          formControlName=\"name\"\r\n          type=\"text\"\r\n          class=\"form-control\"\r\n        />\r\n      </div>\r\n      <div class=\"form-group\">\r\n        <label for=\"parentModule\">{{ \"Parent Module\"  }}</label>\r\n        <select\r\n          id=\"parentModule\"\r\n          formControlName=\"parentModuleId\"\r\n          class=\"form-control selection\"\r\n        >\r\n          <option value=\"null\" disabled selected>Select a parent module</option>\r\n          <option *ngFor=\"let parentModule of modules\" [value]=\"parentModule.id\">\r\n            {{ parentModule.name }}\r\n          </option>\r\n        </select>\r\n      </div>\r\n      <div class=\"form-group\">\r\n        <label for=\"referenceModule\">{{ \"Reference Module\"  }}</label>\r\n        <select\r\n          id=\"referenceModule\"\r\n          formControlName=\"referenceModuleId\"\r\n          class=\"form-control selection\"\r\n        >\r\n          <option value=\"null\" disabled selected>\r\n            Select a reference module\r\n          </option>\r\n          <option\r\n            *ngFor=\"let referenceModule of modules\"\r\n            [value]=\"referenceModule.id\"\r\n          >\r\n            {{ referenceModule.name }}\r\n          </option>\r\n        </select>\r\n      </div>\r\n      <div class=\"module-form-settings\" formGroupName=\"configuration\">\r\n        <!-- <div class=\"form-group\">\r\n        <label>\r\n          <input type=\"checkbox\" formControlName=\"saveAutomatically\" />\r\n          Save form automatically\r\n        </label>\r\n        <div class=\"w-20 d-flex form-control-container\" *ngIf=\"isChecked('saveAutomatically')\">\r\n          <div class=\"d-flex-none\">On every </div>\r\n          <div class=\"w-30\">\r\n            <lib-dropdown [showBorder]=\"false\" [items]=\"intervals\" (selectedItemsChange)=\"onFieldChange($event, 'intervals')\"\r\n              [(selectedItems)]=\"selectedInterval\"></lib-dropdown>\r\n          </div>\r\n        </div>\r\n      </div> -->\r\n  \r\n        <div class=\"form-group\">\r\n          <label>\r\n            <input type=\"checkbox\" formControlName=\"customizeFont\" />\r\n            {{ \"Form style\"  }}\r\n          </label>\r\n          <div\r\n            *ngIf=\"isChecked('customizeFont')\"\r\n            class=\"form-control-container d-flex mt-1\"\r\n          >\r\n            <div class=\"font-list\">\r\n              <lib-dropdown\r\n                [placeholder]=\"'Select Font'\"\r\n                [items]=\"fontFamily\"\r\n                (selectedItemsChange)=\"onFieldChange($event, 'fontFamily')\"\r\n                [(selectedItems)]=\"selectedFontFamily\"\r\n              ></lib-dropdown>\r\n            </div>\r\n            <div class=\"size-list\">\r\n              <input type=\"number\" class=\"form-control\" formControlName=\"fontSize\">\r\n            </div>\r\n          </div>\r\n        </div>\r\n  \r\n        <!-- <div class=\"form-group\">\r\n          <label>\r\n            <input type=\"checkbox\" formControlName=\"enableDataExport\" />\r\n            {{\"Export file to Supported formats\"  }}\r\n          </label>\r\n          <div *ngIf=\"isChecked('enableDataExport')\" class=\"form-control-container d-flex mt-1\">\r\n            <div class=\"w-30\">\r\n              <label class=\"label-txt\">{{\"Export file\"  }}</label>\r\n              <lib-dropdown (selectedItemsChange)=\"onFieldChange($event, 'exportfile')\"\r\n                [placeholder]=\"'Select file type'\" [items]=\"fileFormats\" [multiple]=\"true\"\r\n                [(selectedItems)]=\"selectedFileFormats\"></lib-dropdown>\r\n            </div>\r\n          </div>\r\n        </div> -->\r\n  \r\n        <div class=\"form-group\">\r\n          <label>\r\n            <input type=\"checkbox\" formControlName=\"enableQuestionNumbering\" />\r\n            {{ \"Question numbering\"  }}\r\n          </label>\r\n          <div *ngIf=\"isChecked('enableQuestionNumbering')\">\r\n            <ul class=\"question_numbering\">\r\n              <li>\r\n                <div class=\"qstn-numbering\">\r\n                  <div\r\n                    class=\"numbering-pattern\"\r\n                    [ngClass]=\"{\r\n                      selected:\r\n                        selectedQuestionNumbering ===\r\n                        'NUMBER_SMALLALPHABET_SMALLROMAN'\r\n                    }\"\r\n                    (click)=\"toggleSelected(1, 'NUMBER_SMALLALPHABET_SMALLROMAN')\"\r\n                  >\r\n                    <div style=\"margin: 0; padding: 0; line-height: 130%\">\r\n                      <div class=\"outer-qstn\">\r\n                        <div class=\"qstn-no\">1.</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-qstn\">\r\n                        <div class=\"qstn-no\">a.</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-qstn\">\r\n                        <div class=\"qstn-no\">b.</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-sub-qstn\">\r\n                        <div class=\"qstn-no\">i.</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"outer-qstn\">\r\n                        <div class=\"qstn-no\">2.</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n                  <div\r\n                    class=\"numbering-pattern\"\r\n                    [ngClass]=\"{\r\n                      selected:\r\n                        selectedQuestionNumbering ===\r\n                        'NUMBER_SMALLALPHABET_SMALLROMAN_BRACKET'\r\n                    }\"\r\n                    (click)=\"\r\n                      toggleSelected(2, 'NUMBER_SMALLALPHABET_SMALLROMAN_BRACKET')\r\n                    \"\r\n                  >\r\n                    <div>\r\n                      <div class=\"outer-qstn\">\r\n                        <div class=\"qstn-no\">1)</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-qstn\">\r\n                        <div class=\"qstn-no\">a)</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-qstn\">\r\n                        <div class=\"qstn-no\">b)</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-sub-qstn\">\r\n                        <div class=\"qstn-no\">i)</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"outer-qstn\">\r\n                        <div class=\"qstn-no\">2)</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n                  <div\r\n                    class=\"numbering-pattern\"\r\n                    [ngClass]=\"{\r\n                      selected: selectedQuestionNumbering === 'NUMBER_NUMBER'\r\n                    }\"\r\n                    (click)=\"toggleSelected(3, 'NUMBER_NUMBER')\"\r\n                  >\r\n                    <div>\r\n                      <div class=\"outer-qstn\">\r\n                        <div class=\"qstn-no\">1.</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-qstn\">\r\n                        <div class=\"qstn-no\">1.1.</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-qstn\">\r\n                        <div class=\"qstn-no\">1.2.</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-sub-qstn\">\r\n                        <div class=\"qstn-no\">1.2.1.</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"outer-qstn\">\r\n                        <div class=\"qstn-no\">2.</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n                  <div\r\n                    class=\"numbering-pattern\"\r\n                    [ngClass]=\"{\r\n                      selected:\r\n                        selectedQuestionNumbering ===\r\n                        'CAPITALALPHABET_SMALLALPHABET_SMALLROMAN'\r\n                    }\"\r\n                    (click)=\"\r\n                      toggleSelected(\r\n                        4,\r\n                        'CAPITALALPHABET_SMALLALPHABET_SMALLROMAN'\r\n                      )\r\n                    \"\r\n                  >\r\n                    <div>\r\n                      <div class=\"outer-qstn\">\r\n                        <div class=\"qstn-no\">A.</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-qstn\">\r\n                        <div class=\"qstn-no\">a.</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-qstn\">\r\n                        <div class=\"qstn-no\">b.</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-sub-qstn\">\r\n                        <div class=\"qstn-no\">i.</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"outer-qstn\">\r\n                        <div class=\"qstn-no\">B.</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n              </li>\r\n              <li>\r\n                <div class=\"qstn-numbering\">\r\n                  <div\r\n                    class=\"numbering-pattern\"\r\n                    [ngClass]=\"{\r\n                      selected:\r\n                        selectedQuestionNumbering ===\r\n                        'CAPITALROMAN_CAPITALALPHABET_NUMBER'\r\n                    }\"\r\n                    (click)=\"\r\n                      toggleSelected(5, 'CAPITALROMAN_CAPITALALPHABET_NUMBER')\r\n                    \"\r\n                  >\r\n                    <div>\r\n                      <div class=\"outer-qstn\">\r\n                        <div class=\"qstn-no\">I.</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-qstn\">\r\n                        <div class=\"qstn-no\">A.</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-qstn\">\r\n                        <div class=\"qstn-no\">B.</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-sub-qstn\">\r\n                        <div class=\"qstn-no\">1.</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"outer-qstn\">\r\n                        <div class=\"qstn-no\">II.</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n                  <div\r\n                    class=\"numbering-pattern\"\r\n                    [ngClass]=\"{\r\n                      selected:\r\n                        selectedQuestionNumbering ===\r\n                        'ZERO_NUMBER_SMALLALPHABET_SMALLROMAN'\r\n                    }\"\r\n                    (click)=\"\r\n                      toggleSelected(6, 'ZERO_NUMBER_SMALLALPHABET_SMALLROMAN')\r\n                    \"\r\n                  >\r\n                    <div>\r\n                      <div class=\"outer-qstn\">\r\n                        <div class=\"qstn-no\">01.</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-qstn\">\r\n                        <div class=\"qstn-no\">a.</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-qstn\">\r\n                        <div class=\"qstn-no\">b.</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-sub-qstn\">\r\n                        <div class=\"qstn-no\">i.</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"outer-qstn\">\r\n                        <div class=\"qstn-no\">02.</div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n                  <div\r\n                    class=\"numbering-pattern\"\r\n                    [ngClass]=\"{\r\n                      selected:\r\n                        selectedQuestionNumbering === 'BULLET_RADIO_SQUARE'\r\n                    }\"\r\n                    (click)=\"toggleSelected(7, 'BULLET_RADIO_SQUARE')\"\r\n                  >\r\n                    <div>\r\n                      <div class=\"outer-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/circle-icon.svg\"\r\n                            alt=\"Dark circle Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/circle-outline-icon.svg\"\r\n                            alt=\"Circle outline Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/circle-outline-icon.svg\"\r\n                            alt=\"Circle outline Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-sub-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/dark-rect-icon.svg\"\r\n                            alt=\"Dark rectangle Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"outer-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/circle-icon.svg\"\r\n                            alt=\"Dark circle Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n                  <div\r\n                    class=\"numbering-pattern\"\r\n                    [ngClass]=\"{\r\n                      selected:\r\n                        selectedQuestionNumbering ===\r\n                        'DOTDIAMOND_FILLEDARROW_SQUARE'\r\n                    }\"\r\n                    (click)=\"toggleSelected(8, 'DOTDIAMOND_FILLEDARROW_SQUARE')\"\r\n                  >\r\n                    <div>\r\n                      <div class=\"outer-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/flower-rect-icon.svg\"\r\n                            alt=\"Flower rectangle Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/right-arrow-icon.svg\"\r\n                            alt=\"Right arrow Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/right-arrow-icon.svg\"\r\n                            alt=\"Right arrow Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-sub-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/dark-rect-icon.svg\"\r\n                            alt=\"Dark rectangle Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"outer-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/flower-rect-icon.svg\"\r\n                            alt=\"Flower rectangle Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n              </li>\r\n              <li>\r\n                <div class=\"qstn-numbering\">\r\n                  <div\r\n                    class=\"numbering-pattern\"\r\n                    [ngClass]=\"{\r\n                      selected: selectedQuestionNumbering === 'CHECKBOX'\r\n                    }\"\r\n                    (click)=\"toggleSelected(9, 'CHECKBOX')\"\r\n                  >\r\n                    <div>\r\n                      <div class=\"outer-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/rect-outline-icon.svg\"\r\n                            alt=\"Outline rectangle Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/rect-outline-icon.svg\"\r\n                            alt=\"Outline rectangle Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/rect-outline-icon.svg\"\r\n                            alt=\"Outline rectangle Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-sub-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/rect-outline-icon.svg\"\r\n                            alt=\"Outline rectangle Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"outer-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/rect-outline-icon.svg\"\r\n                            alt=\"Outline rectangle Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n                  <div\r\n                    class=\"numbering-pattern\"\r\n                    [ngClass]=\"{\r\n                      selected: selectedQuestionNumbering === 'ARROW_DIAMOND_DISC'\r\n                    }\"\r\n                    (click)=\"toggleSelected(10, 'ARROW_DIAMOND_DISC')\"\r\n                  >\r\n                    <div>\r\n                      <div class=\"outer-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/right-arrow-outline-icon.svg\"\r\n                            alt=\"Right outline arrow Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/diamond-icon.svg\"\r\n                            alt=\"Diamond Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/diamond-icon.svg\"\r\n                            alt=\"Diamond Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-sub-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/circle-icon.svg\"\r\n                            alt=\"Dark circle Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"outer-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/right-arrow-outline-icon.svg\"\r\n                            alt=\"Right outline arrow Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n                  <div\r\n                    class=\"numbering-pattern\"\r\n                    [ngClass]=\"{\r\n                      selected: selectedQuestionNumbering === 'STAR_RADIO_SQUARE'\r\n                    }\"\r\n                    (click)=\"toggleSelected(11, 'STAR_RADIO_SQUARE')\"\r\n                  >\r\n                    <div>\r\n                      <div class=\"outer-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/star-icon.svg\"\r\n                            alt=\"Star Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/circle-outline-icon.svg\"\r\n                            alt=\"Circle outline Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/circle-outline-icon.svg\"\r\n                            alt=\"Circle outline Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-sub-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/dark-rect-icon.svg\"\r\n                            alt=\"Dark rectangle Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"outer-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/star-icon.svg\"\r\n                            alt=\"Star Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n                  <div\r\n                    class=\"numbering-pattern\"\r\n                    [ngClass]=\"{\r\n                      selected:\r\n                        selectedQuestionNumbering === 'FILLEDARROW_RADIO_SQUARE'\r\n                    }\"\r\n                    (click)=\"toggleSelected(12, 'FILLEDARROW_RADIO_SQUARE')\"\r\n                  >\r\n                    <div>\r\n                      <div class=\"outer-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/right-arrow-icon.svg\"\r\n                            alt=\"Right arrow Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/circle-outline-icon.svg\"\r\n                            alt=\"Circle outline Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/circle-outline-icon.svg\"\r\n                            alt=\"Circle outline Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"inner-sub-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/dark-rect-icon.svg\"\r\n                            alt=\"Dark rectangle Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                      <div class=\"outer-qstn\">\r\n                        <div class=\"qstn-no\">\r\n                          <img\r\n                            src=\"/assets/icons/right-arrow-icon.svg\"\r\n                            alt=\"Right arrow Icon\"\r\n                          />\r\n                        </div>\r\n                        <div class=\"qstn-line\"></div>\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n              </li>\r\n            </ul>\r\n          </div>\r\n        </div>\r\n  \r\n        <div class=\"form-group google-recaptcha\">\r\n          <label>\r\n            <input type=\"checkbox\" formControlName=\"enableGoogleRecaptcha\" />\r\n            Google Recaptcha\r\n          </label>\r\n        </div>\r\n  \r\n        <div class=\"form-group\">\r\n          <label>\r\n            {{ \"Pages\"  }}\r\n          </label>\r\n          <div>\r\n            <ul>\r\n              <li>\r\n                <label for class=\"navigation\">{{\r\n                  \"Navigation\" \r\n                }}</label>\r\n              </li>\r\n              <li class=\"d-flex\">\r\n                <input\r\n                  type=\"radio\"\r\n                  id=\"tab\"\r\n                  class=\"nav-radio\"\r\n                  formControlName=\"navigation\"\r\n                  value=\"TAB\"\r\n                  (change)=\"onFieldChange($event, 'navigation')\"\r\n                />\r\n                <label for=\"tab\" class=\"nav-label\">{{ \"Tab\"  }}</label>\r\n                <input\r\n                  type=\"radio\"\r\n                  id=\"button\"\r\n                  class=\"nav-radio\"\r\n                  formControlName=\"navigation\"\r\n                  value=\"NEXT_AND_PREVIOUS_BUTTON\"\r\n                  (change)=\"onFieldChange($event, 'navigation')\"\r\n                />\r\n                <label for=\"button\" class=\"nav-label\">{{\r\n                  \"Next and previous button\" \r\n                }}</label>\r\n              </li>\r\n              <li>\r\n                <div class=\"required-questions\">\r\n                  <input\r\n                    type=\"checkbox\"\r\n                    id=\"reqEnable\"\r\n                    class=\"check-box\"\r\n                    formControlName=\"markAllQuestionsAsRequired\"\r\n                  />\r\n                  <label for=\"reqEnable\">{{\r\n                    \"Enable only if all required questions are answered\"\r\n                      \r\n                  }}</label>\r\n                </div>\r\n              </li>\r\n            </ul>\r\n          </div>\r\n        </div>\r\n      </div>\r\n  \r\n      <div class=\"form-group\">\r\n        <label class=\"bold\">{{ \"Default Questions\"  }}</label>\r\n        <div formArrayName=\"questions\" class=\"formarrayname\">\r\n          <div\r\n            class=\"flex-group\"\r\n            *ngFor=\"\r\n              let question of questions.controls;\r\n              let i = index;\r\n              trackBy: trackByIndex\r\n            \"\r\n            [formGroupName]=\"i\"\r\n          >\r\n            <div class=\"form-group w-70\">\r\n              <input\r\n                #saveQuestion\r\n                placeholder=\"Enter the question\"\r\n                formControlName=\"label\"\r\n                type=\"text\"\r\n                class=\"form-control\"\r\n                [attr.data-index]=\"i\"\r\n              />\r\n            </div>\r\n            <div class=\"form-group w-30\">\r\n              <select\r\n                id=\"elementType{{ i }}\"\r\n                formControlName=\"elementType\"\r\n                class=\"form-control\"\r\n              >\r\n                <option\r\n                  *ngFor=\"let option of elementTypeOptions\"\r\n                  [value]=\"option.value\"\r\n                >\r\n                  {{ option.label }}\r\n                </option>\r\n              </select>\r\n            </div>\r\n            <div class=\"form-group w-30\">\r\n              <input\r\n                placeholder=\"Enter custom element id\"\r\n                formControlName=\"customElementId\"\r\n                type=\"text\"\r\n                class=\"form-control\"\r\n                [attr.data-index]=\"i\"\r\n              />\r\n            </div>\r\n            <div class=\"form-group w-10\">\r\n              <button\r\n                type=\"button\"\r\n                (click)=\"removeQuestion(i); $event.stopPropagation()\"\r\n                class=\"btn-icon\"\r\n              >\r\n                <img\r\n                  class=\"delete-icon\"\r\n                  src=\"assets/icons/bin-icon.svg\"\r\n                  alt=\"Delete Icon\"\r\n                />\r\n              </button>\r\n            </div>\r\n          </div>\r\n        </div>\r\n        <div class=\"btn-container\">\r\n          <button\r\n            type=\"button\"\r\n            (click)=\"addQuestion()\"\r\n            class=\"btn-icon center webhook-btn\"\r\n          >\r\n            <img src=\"assets/icons/plus-icon.svg\" alt=\"Add Icon\" />\r\n            {{ \"Add Questions\"  }}\r\n          </button>\r\n        </div>\r\n      </div>\r\n      <p class=\"bold\">{{ \"Webhooks\"  }}</p>\r\n      <div class=\"webhook-container\">\r\n        <div formArrayName=\"webhooks\" class=\"formarrayname\">\r\n          <div\r\n            *ngFor=\"let webhook of webhooks.controls; let i = index; trackBy: trackByIndex\"\r\n            [formGroupName]=\"i\"\r\n            class=\"accordion\"\r\n          >\r\n            <div class=\"accordion-header\" (click)=\"toggleAccordion(i, 'webhook')\">\r\n              <p>\r\n                {{ moduleForm.value.webhooks[i].webhookName }}\r\n                <span *ngIf=\"moduleForm.value.webhooks[i].webhookTriggerTypes?.length\">\r\n                  - {{ getTriggerValues(i) }}\r\n                </span>\r\n              </p>\r\n  \r\n  \r\n              <div>\r\n                <button type=\"button\" (click)=\"removeWebhook(i); $event.stopPropagation()\" class=\"btn-icon\">\r\n                  <img class=\"delete-icon\" src=\"assets/icons/bin-icon.svg\" alt=\"Delete Icon\" />\r\n                </button>\r\n                <button type=\"button\" class=\"btn-icon\" *ngIf=\"!isOpen(i, 'webhook')\">\r\n                  <img class=\"up-arrow-icon\" src=\"assets/icons/up-arrow-icon.svg\" alt=\"Up Arrow Icon\" />\r\n                </button>\r\n                <button type=\"button\" class=\"btn-icon\" *ngIf=\"isOpen(i, 'webhook')\">\r\n                  <img class=\"arrow-icon\" src=\"assets/icons/down-arrow-icon.svg\" alt=\"Down Arrow Icon\" />\r\n                </button>\r\n              </div>\r\n            </div>\r\n            <div class=\"accordion-body\" [ngClass]=\"{ show: isOpen(i, 'webhook') }\">\r\n              <div class=\"form-group\">\r\n  \r\n                <div class=\"webhook-container d-flex gap-3 pe-3\">\r\n  \r\n  \r\n                  <div class=\"col-md-9 webhook-name\">\r\n                    <label for=\"webhookName{{ i }}\">\r\n                      {{ \"Webhook Name\"  }}\r\n                      <span class=\"text-danger\"> *</span>\r\n                    </label>\r\n                    <input placeholder=\"Enter the webhook name\" id=\"webhookName{{ i }}\" formControlName=\"webhookName\"\r\n                      type=\"text\" class=\"form-control\" [ngClass]=\"{ 'is-invalid': isInvalid(i, 'webhookName') }\" />\r\n                  </div>\r\n  \r\n  \r\n                  <div class=\"col-md-3 webhook-trigger\">\r\n                    <div class=\"flex-grow-1\">\r\n                      <label>Trigger when<span class=\"text-danger\"> *</span></label>\r\n                      <ng-select class=\"custom-ng-select\"\r\n                        [items]=\"webhookTriggerOptionss\"\r\n                        formControlName=\"webhookTriggerTypes\"\r\n                        [(ngModel)]=\"moduleForm.value.webhooks[i].webhookTriggerTypes\"\r\n                        [multiple]=\"true\"\r\n                        [ngClass]=\"{ 'is-invalid': isInvalid(i, 'webhookTriggerTypes') }\"\r\n                        bindLabel=\"label\"\r\n                        bindValue=\"value\"\r\n                        >\r\n                      </ng-select>\r\n                      <div *ngIf=\"isInvalid(i, 'webhookTriggerTypes')\" class=\"invalid-feedback d-flex\">\r\n                        {{ \"Trigger when is required\"  }}\r\n  \r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n  \r\n                </div>\r\n  \r\n                <div *ngIf=\"isInvalid(i, 'webhookName')\" class=\"invalid-feedback d-flex\">\r\n                  {{ \"Name is required\"  }}\r\n                </div>\r\n  \r\n  \r\n  \r\n              </div>\r\n              <div class=\"form-group\">\r\n                <div class=\"flex-group\">\r\n                  <!-- Request Type -->\r\n                  <div class=\"form-group w-30\">\r\n                    <label for=\"requestType{{ i }}\">\r\n                      {{ \"Request Type\"  }}\r\n                      <span class=\"text-danger\"> *</span>\r\n                    </label>\r\n                    <select id=\"requestType{{ i }}\" formControlName=\"requestType\" class=\"form-control\">\r\n                      <option *ngFor=\"let option of requestTypeOptions\" [value]=\"option.value\">\r\n                        {{ option.label }}\r\n                      </option>\r\n                    </select>\r\n                  </div>\r\n  \r\n  \r\n                  <div class=\"form-group w-60 api-url\">\r\n                    <label for=\"url{{ i }}\">\r\n                      {{ \"API URL\"  }}\r\n                      <span class=\"text-danger\"> *</span>\r\n                    </label>\r\n                    <input id=\"url{{ i }}\" formControlName=\"url\" placeholder=\"api/test-url\" type=\"text\"\r\n                      class=\"form-control\" [ngClass]=\"{ 'is-invalid': isInvalid(i, 'url') }\" />\r\n                    <div *ngIf=\"isInvalid(i, 'url')\" class=\"invalid-feedback\">\r\n                      {{ \"URL is required\"  }}\r\n                    </div>\r\n                  </div>\r\n  \r\n  \r\n                  <div class=\"api-url-type\">\r\n                    <label class=\"d-flex align-items-center gap-1\">\r\n                      <input type=\"radio\" formControlName=\"webhookUrlType\" value=\"EXTERNAL\" />\r\n                      {{ \"External\"  }}\r\n                    </label>\r\n                    <label class=\"d-flex align-items-center gap-1\">\r\n                      <input type=\"radio\" formControlName=\"webhookUrlType\" value=\"INTERNAL\" />\r\n                      {{ \"Internal\"  }}\r\n                    </label>\r\n                  </div>\r\n  \r\n                </div>\r\n              </div>\r\n  \r\n  \r\n  \r\n  \r\n  \r\n              <div formArrayName=\"headers\" class=\"formarrayname\">\r\n                <div class=\"accordion\">\r\n                  <div\r\n                    class=\"accordion-header\"\r\n                    (click)=\"toggleAccordion(i, 'header')\"\r\n                  >\r\n                    <label>{{ \"Headers\"  }}</label>\r\n                    <button\r\n                      type=\"button\"\r\n                      class=\"btn-icon\"\r\n                      *ngIf=\"!isOpen(i, 'header')\"\r\n                    >\r\n                      <img\r\n                        class=\"up-arrow-icon\"\r\n                        src=\"assets/icons/up-arrow-icon.svg \"\r\n                        alt=\"Up Arrow Icon\"\r\n                      />\r\n                    </button>\r\n                    <button\r\n                      type=\"button\"\r\n                      class=\"btn-icon\"\r\n                      *ngIf=\"isOpen(i, 'header')\"\r\n                    >\r\n                      <img\r\n                        class=\"arrow-icon\"\r\n                        src=\"assets/icons/down-arrow-icon.svg\"\r\n                        alt=\"Down Arrow Icon\"\r\n                      />\r\n                    </button>\r\n                  </div>\r\n                  <div\r\n                    class=\"accordion-body\"\r\n                    [ngClass]=\"{ show: isOpen(i, 'header') }\"\r\n                  >\r\n                    <div\r\n                      *ngFor=\"\r\n                        let header of getParameters(i, 'headers').controls;\r\n                        let j = index\r\n                      \"\r\n                      class=\"parameter-container\"\r\n                      [formGroupName]=\"j\"\r\n                      [formGroupName]=\"j\"\r\n                    >\r\n                      <div class=\"form-group\">\r\n                        <div class=\"d-md-flex justify-content-md-between\">\r\n                          <div class=\"form-field\">\r\n                            <label for=\"headerName{{ i }}{{ j }}\">{{\r\n                              \"Name\" \r\n                            }}<span class=\"text-danger\"> *</span></label>\r\n                            <input\r\n                              id=\"headerName{{ i }}{{ j }}\"\r\n                              formControlName=\"name\"\r\n                              type=\"text\"\r\n                              class=\"form-control\"\r\n                              placeholder=\"Enter the header\"\r\n                            />\r\n                            <div\r\n                            *ngIf=\"showError && !moduleForm.value.webhooks[i]?.headers?.[j]?.name\"\r\n                            class=\"invalid-feedback d-flex\"\r\n                          >\r\n                            {{ \"Name is required\"  }}\r\n                          </div>\r\n                          </div>\r\n                          <div class=\"form-field\">\r\n                            <label for=\"headerValueType{{ i }}{{ j }}\"\r\n                              >{{ \"Value From\"  }}<span class=\"text-danger\"> *</span></label\r\n                            >\r\n                            <select\r\n                              (change)=\"\r\n                                onValueTypeChange($event, i, j, 'headers')\r\n                              \"\r\n                              id=\"headerValueType{{ i }}{{ j }}\"\r\n                              formControlName=\"valueForm\"\r\n                              class=\"form-control selection\"\r\n                            >\r\n                              <option value=\"null\" disabled selected>\r\n                                Select a value from\r\n                              </option>\r\n                              <option\r\n                                *ngFor=\"let option of options\"\r\n                                [value]=\"option.value\"\r\n                              >\r\n                                {{ option.label }}\r\n                              </option>\r\n                            </select>\r\n                            <div\r\n                            *ngIf=\"showError && !moduleForm.value.webhooks[i]?.headers?.[j]?.valueForm\"\r\n                            class=\"invalid-feedback d-flex\"\r\n                          >\r\n                            {{ \"Value From is required\"  }}\r\n                          </div>\r\n                          </div>\r\n                          <div\r\n                            class=\"form-field\"\r\n                            *ngIf=\"\r\n                              initializeIndex(i, j, 'headers') === undefined ||\r\n                              true\r\n                            \"\r\n                          >\r\n                            <label for=\"headerValue{{ i }}{{ j }}\">{{\r\n                              \"Value\" \r\n                            }}  <span class=\"text-danger\"> *</span></label>\r\n  \r\n                            <input\r\n                              *ngIf=\"!isQuestionSelectedHeader[i][j]\"\r\n                              id=\"headerValue{{ i }}{{ j }}\"\r\n                              formControlName=\"value\"\r\n                              type=\"text\"\r\n                              class=\"form-control\"\r\n                              placeholder=\"Enter the value\"\r\n                            />\r\n  \r\n                            <select\r\n                              *ngIf=\"isQuestionSelectedHeader[i][j]\"\r\n                              id=\"headerValueSelect{{ i }}{{ j }}\"\r\n                              formControlName=\"value\"\r\n                              class=\"form-control selection\"\r\n                            >\r\n                              <option value=\"\" selected>Select a question</option>\r\n                              <ng-container\r\n                                *ngFor=\"let option of questions?.value\"\r\n                              >\r\n                                <option\r\n                                  *ngIf=\"option.label?.trim() !== ''\"\r\n                                  [value]=\"option.id\"\r\n                                >\r\n                                  {{ option.label }}\r\n                                </option>\r\n                              </ng-container>\r\n                            </select>\r\n\r\n                               <div\r\n                            *ngIf=\"showError && !moduleForm.value.webhooks[i]?.headers?.[j]?.value\"\r\n                            class=\"invalid-feedback d-flex\"\r\n                          >\r\n                            {{ \"Value is required\"  }}\r\n                          </div>\r\n                          </div>\r\n                          <div class=\"flex-group justify-content-end pt-md-4\">\r\n                            <button\r\n                              type=\"button\"\r\n                              (click)=\"removeParameter(i, j, 'headers')\"\r\n                              class=\"btn-icon\"\r\n                            >\r\n                              <img\r\n                                src=\"assets/icons/bin-icon.svg\"\r\n                                alt=\"Delete Icon\"\r\n                              />\r\n                            </button>\r\n                          </div>\r\n                        </div>\r\n                      </div>\r\n                    </div>\r\n                    <div class=\"button-container\">\r\n                      <button\r\n                        type=\"button\"\r\n                        (click)=\"addParameter(i, 'headers')\"\r\n                        class=\"btn-icon\"\r\n                      >\r\n                        <img\r\n                          class=\"add_icon\"\r\n                          src=\"assets/icons/plus-icon.svg\"\r\n                          alt=\"Add Icon\"\r\n                        />\r\n                      </button>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n  \r\n              <div formArrayName=\"params\" class=\"formarrayname\">\r\n                <div class=\"accordion\">\r\n                  <div\r\n                    class=\"accordion-header\"\r\n                    (click)=\"toggleAccordion(i, 'param')\"\r\n                  >\r\n                    <label>{{ \"Parameters\"  }}</label>\r\n                    <button\r\n                      type=\"button\"\r\n                      class=\"btn-icon\"\r\n                      *ngIf=\"!isOpen(i, 'param')\"\r\n                    >\r\n                      <img\r\n                        class=\"up-arrow-icon\"\r\n                        src=\"assets/icons/up-arrow-icon.svg\"\r\n                        alt=\"Up Arrow Icon\"\r\n                      />\r\n                    </button>\r\n                    <button\r\n                      type=\"button\"\r\n                      class=\"btn-icon\"\r\n                      *ngIf=\"isOpen(i, 'param')\"\r\n                    >\r\n                      <img\r\n                        class=\"arrow-icon\"\r\n                        src=\"assets/icons/down-arrow-icon.svg\"\r\n                        alt=\"Down Arrow Icon\"\r\n                      />\r\n                    </button>\r\n                  </div>\r\n                  <div\r\n                    class=\"accordion-body\"\r\n                    [ngClass]=\"{ show: isOpen(i, 'param') }\"\r\n                  >\r\n                    <div\r\n                      *ngFor=\"\r\n                        let params of getParameters(i, 'params').controls;\r\n                        let j = index\r\n                      \"\r\n                      class=\"parameter-container\"\r\n                      [formGroupName]=\"j\"\r\n                      [formGroupName]=\"j\"\r\n                    >\r\n                      <div class=\"form-group\">\r\n                        <div class=\"d-md-flex justify-content-md-between\">\r\n                          <div class=\"form-field\">\r\n                            <label for=\"parameterName{{ i }}{{ j }}\">{{\r\n                              \"Name\" \r\n                            }}<span class=\"text-danger\"> *</span></label>\r\n                            <input\r\n                              id=\"parameterName{{ i }}{{ j }}\"\r\n                              formControlName=\"name\"\r\n                              type=\"text\"\r\n                              class=\"form-control\"\r\n                              placeholder=\"Enter the parameter\"\r\n                            />\r\n                            <div\r\n                            *ngIf=\"showError && !moduleForm.value.webhooks[i]?.params?.[j]?.name\"\r\n                            class=\"invalid-feedback d-flex\"\r\n                          >\r\n                            {{ \"Name is required\"  }}\r\n                          </div>\r\n                          </div>\r\n                          <div class=\"form-field\">\r\n                            <label for=\"parameterValueType{{ i }}{{ j }}\"\r\n                              >{{ \"Value From\"  }}<span class=\"text-danger\"> *</span></label\r\n                            >\r\n                            <select\r\n                              (change)=\"onValueTypeChange($event, i, j, 'params')\"\r\n                              id=\"parameterValueType{{ i }}{{ j }}\"\r\n                              formControlName=\"valueForm\"\r\n                              class=\"form-control selection\"\r\n                            >\r\n                              <option value=\"null\" disabled selected>\r\n                                Select a value from\r\n                              </option>\r\n                              <option\r\n                                *ngFor=\"let option of options\"\r\n                                [value]=\"option.value\"\r\n                              >\r\n                                {{ option.label }}\r\n                              </option>\r\n                            </select>\r\n  \r\n                            <div\r\n                            *ngIf=\"showError && !moduleForm.value.webhooks[i]?.params?.[j]?.valueForm\"\r\n                            class=\"invalid-feedback d-flex\"\r\n                          >\r\n                            {{ \"Value From is required\"  }}\r\n                          </div>\r\n                          </div>\r\n                          <div\r\n                            class=\"form-field\"\r\n                            *ngIf=\"\r\n                              initializeIndex(i, j, 'params') === undefined ||\r\n                              true\r\n                            \"\r\n                          >\r\n                            <label for=\"parameterValue{{ i }}{{ j }}\">{{\r\n                              \"Value\" \r\n                            }} <span class=\"text-danger\"> *</span></label>\r\n                            <input\r\n                              *ngIf=\"!isQuestionSelectedParam[i][j]\"\r\n                              id=\"parameterValue{{ i }}{{ j }}\"\r\n                              formControlName=\"value\"\r\n                              type=\"text\"\r\n                              class=\"form-control\"\r\n                              placeholder=\"Enter the value\"\r\n         />\r\n                            <select\r\n                              *ngIf=\"isQuestionSelectedParam[i][j]\"\r\n                              id=\"parameterValueSelect{{ i }}{{ j }}\"\r\n                              formControlName=\"value\"\r\n                              class=\"form-control selection\"\r\n                            >\r\n                              <option value=\"\" selected>Select a question</option>\r\n                              <ng-container\r\n                                *ngFor=\"let option of questions?.value\"\r\n                              >\r\n                                <option\r\n                                  *ngIf=\"option.label?.trim() !== ''\"\r\n                                  [value]=\"option.id\"\r\n                                >\r\n                                  {{ option.label }}\r\n                                </option>\r\n                              </ng-container>\r\n                            </select>\r\n                             <div\r\n                            *ngIf=\"showError && !moduleForm.value.webhooks[i]?.params?.[j]?.value\"\r\n                            class=\"invalid-feedback d-flex\"\r\n                          >\r\n                            {{ \"Value is required\"  }}\r\n                          </div>\r\n                          </div>\r\n                          <div class=\"flex-group justify-content-end pt-md-4\">\r\n                            <button\r\n                              type=\"button\"\r\n                              (click)=\"removeParameter(i, j, 'params')\"\r\n                              class=\"btn-icon\"\r\n                            >\r\n                              <img\r\n                                src=\"assets/icons/bin-icon.svg\"\r\n                                alt=\"Delete Icon\"\r\n                              />\r\n                            </button>\r\n                          </div>\r\n                        </div>\r\n                      </div>\r\n                    </div>\r\n                    <div class=\"button-container\">\r\n                      <button\r\n                        type=\"button\"\r\n                        (click)=\"addParameter(i, 'params')\"\r\n                        class=\"btn-icon\"\r\n                      >\r\n                        <img\r\n                          class=\"add_icon\"\r\n                          src=\"assets/icons/plus-icon.svg\"\r\n                          alt=\"Add Icon\"\r\n                        />\r\n                      </button>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n  \r\n              <div formArrayName=\"pathVariables\" class=\"formarrayname\">\r\n                <div class=\"accordion\">\r\n                  <div\r\n                    class=\"accordion-header\"\r\n                    (click)=\"toggleAccordion(i, 'pathvariable')\"\r\n                  >\r\n                    <label>{{ \"Path variables\"  }}</label>\r\n                    <button\r\n                      type=\"button\"\r\n                      class=\"btn-icon\"\r\n                      *ngIf=\"!isOpen(i, 'pathvariable')\"\r\n                    >\r\n                      <img\r\n                        class=\"up-arrow-icon\"\r\n                        src=\"assets/icons/up-arrow-icon.svg\"\r\n                        alt=\"Up Arrow Icon\"\r\n                      />\r\n                    </button>\r\n                    <button\r\n                      type=\"button\"\r\n                      class=\"btn-icon\"\r\n                      *ngIf=\"isOpen(i, 'pathvariable')\"\r\n                    >\r\n                      <img\r\n                        class=\"arrow-icon\"\r\n                        src=\"assets/icons/down-arrow-icon.svg\"\r\n                        alt=\"Down Arrow Icon\"\r\n                      />\r\n                    </button>\r\n                  </div>\r\n                  <div\r\n                    class=\"accordion-body\"\r\n                    [ngClass]=\"{ show: isOpen(i, 'pathvariable') }\"\r\n                  >\r\n                    <div\r\n                      *ngFor=\"\r\n                        let pathvariable of getParameters(i, 'pathVariables')\r\n                          .controls;\r\n                        let j = index\r\n                      \"\r\n                      class=\"parameter-container\"\r\n                      [formGroupName]=\"j\"\r\n                      [formGroupName]=\"j\"\r\n                    >\r\n                      <div class=\"form-group\">\r\n                        <div class=\"d-md-flex justify-content-md-between\">\r\n                          <div class=\"form-field\">\r\n                            <label for=\"pathvariable{{ i }}{{ j }}\">{{\r\n                              \"Name\" \r\n                            }}<span class=\"text-danger\"> *</span></label>\r\n                            <input\r\n                              id=\"pathvariable{{ i }}{{ j }}\"\r\n                              formControlName=\"name\"\r\n                              type=\"text\"\r\n                              class=\"form-control\"\r\n                              placeholder=\"Enter the pathvariable\"\r\n                            />\r\n                            <div\r\n                            *ngIf=\"showError && !moduleForm.value.webhooks[i]?.pathVariables?.[j]?.name\"\r\n                            class=\"invalid-feedback d-flex\"\r\n                          >\r\n                            {{ \"Name is required\"  }}\r\n                          </div>\r\n                          </div>\r\n                          <div class=\"form-field\">\r\n                            <label for=\"pathValueType{{ i }}{{ j }}\"\r\n                              >{{ \"Value From\"  }}<span class=\"text-danger\"> *</span></label\r\n                            >\r\n                            <select\r\n                              (change)=\"onValueTypeChange($event, i, j, 'path')\"\r\n                              id=\"pathValueType{{ i }}{{ j }}\"\r\n                              formControlName=\"valueForm\"\r\n                              class=\"form-control selection\"\r\n                            >\r\n                              <option value=\"null\" disabled selected>\r\n                                Select a value from\r\n                              </option>\r\n                              <option\r\n                                *ngFor=\"let option of options\"\r\n                                [value]=\"option.value\"\r\n                              >\r\n                                {{ option.label }}\r\n                              </option>\r\n                            </select>\r\n                            <div\r\n                            *ngIf=\"showError && !moduleForm.value.webhooks[i]?.pathVariables?.[j]?.valueForm\"\r\n                            class=\"invalid-feedback d-flex\"\r\n                          >\r\n                            {{ \"Value From is required\"  }}\r\n                          </div>\r\n                          </div>\r\n                          <div\r\n                            class=\"form-field\"\r\n                            *ngIf=\"\r\n                              initializeIndex(i, j, 'path') === undefined || true\r\n                            \"\r\n                          >\r\n                            <label for=\"pathValue{{ i }}{{ j }}\">{{\r\n                              \"Value\" \r\n                            }}<span class=\"text-danger\"> *</span></label>\r\n                            <input\r\n                              *ngIf=\"!isQuestionSelectedPath[i][j]\"\r\n                              id=\"pathValue{{ i }}{{ j }}\"\r\n                              formControlName=\"value\"\r\n                              type=\"text\"\r\n                              class=\"form-control\"\r\n                              placeholder=\"Enter the value\"\r\n          />\r\n                            <select\r\n                              *ngIf=\"isQuestionSelectedPath[i][j]\"\r\n                              id=\"pathValueSelect{{ i }}{{ j }}\"\r\n                              formControlName=\"value\"\r\n                              class=\"form-control selection\"\r\n                            >\r\n                              <option value=\"\" selected>Select a question</option>\r\n                              <ng-container\r\n                                *ngFor=\"let option of questions?.value\"\r\n                              >\r\n                                <option\r\n                                  *ngIf=\"option.label?.trim() !== ''\"\r\n                                  [value]=\"option.id\"\r\n                                >\r\n                                  {{ option.label }}\r\n                                </option>\r\n                              </ng-container>\r\n                            </select>\r\n                             <div\r\n                            *ngIf=\"showError && !moduleForm.value.webhooks[i]?.pathVariables?.[j]?.value\"\r\n                            class=\"invalid-feedback d-flex\"\r\n                          >\r\n                            {{ \"Value is required\"  }}\r\n                          </div>\r\n                          </div>\r\n                          <div class=\"flex-group justify-content-end pt-md-4\">\r\n                            <button\r\n                              type=\"button\"\r\n                              (click)=\"removeParameter(i, j, 'pathVariables')\"\r\n                              class=\"btn-icon\"\r\n                            >\r\n                              <img\r\n                                src=\"assets/icons/bin-icon.svg\"\r\n                                alt=\"Delete Icon\"\r\n                              />\r\n                            </button>\r\n                          </div>\r\n                        </div>\r\n                      </div>\r\n                    </div>\r\n                    <div class=\"button-container\">\r\n                      <button\r\n                        type=\"button\"\r\n                        (click)=\"addParameter(i, 'pathVariables')\"\r\n                        class=\"btn-icon\"\r\n                      >\r\n                        <img\r\n                          class=\"add_icon\"\r\n                          src=\"assets/icons/plus-icon.svg\"\r\n                          alt=\"Add Icon\"\r\n                        />\r\n                      </button>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n  \r\n              <div formArrayName=\"requestBodies\" class=\"formarrayname\">\r\n                <div class=\"accordion\">\r\n                  <div\r\n                    class=\"accordion-header\"\r\n                    (click)=\"toggleAccordion(i, 'requestBody')\"\r\n                  >\r\n                    <label>{{ \"Request Body\"  }}</label>\r\n                    <button\r\n                      type=\"button\"\r\n                      class=\"btn-icon\"\r\n                      *ngIf=\"!isOpen(i, 'requestBody')\"\r\n                    >\r\n                      <img\r\n                        class=\"up-arrow-icon\"\r\n                        src=\"assets/icons/up-arrow-icon.svg\"\r\n                        alt=\"Up Arrow Icon\"\r\n                      />\r\n                    </button>\r\n                    <button\r\n                      type=\"button\"\r\n                      class=\"btn-icon\"\r\n                      *ngIf=\"isOpen(i, 'requestBody')\"\r\n                    >\r\n                      <img\r\n                        class=\"arrow-icon\"\r\n                        src=\"assets/icons/down-arrow-icon.svg\"\r\n                        alt=\"Down Arrow Icon\"\r\n                      />\r\n                    </button>\r\n                  </div>\r\n                  <div\r\n                    class=\"accordion-body\"\r\n                    [ngClass]=\"{ show: isOpen(i, 'requestBody') }\"\r\n                  >\r\n                    <div\r\n                      *ngFor=\"\r\n                        let requestBody of getParameters(i, 'requestBodies')\r\n                          .controls;\r\n                        let j = index\r\n                      \"\r\n                      class=\"parameter-container\"\r\n                      [formGroupName]=\"j\"\r\n                      [formGroupName]=\"j\"\r\n                    >\r\n                      <div class=\"form-group\">\r\n                        <div class=\"d-md-flex justify-content-md-between\">\r\n                          <div class=\"form-field\">\r\n                            <label for=\"requestBody{{ i }}{{ j }}\">{{\r\n                              \"Name\" \r\n                              }}<span class=\"text-danger\"> *</span></label>\r\n                            <input id=\"requestBody{{ i }}{{ j }}\" formControlName=\"name\" type=\"text\" class=\"form-control\"\r\n                              placeholder=\"Enter the request body\" />\r\n                            <div *ngIf=\"showError && !moduleForm.value.webhooks[i]?.requestBodies?.[j]?.name\"\r\n                              class=\"invalid-feedback d-flex\">\r\n                              {{ \"Name is required\"  }}\r\n                            </div>\r\n                          </div>\r\n                          <div class=\"form-field\">\r\n                            <label for=\"requestValueType{{ i }}{{ j }}\">{{ \"Value From\" \r\n                              }}<span class=\"text-danger\"> *</span></label>\r\n                            <select (change)=\"\r\n                                onValueTypeChange($event, i, j, 'requestBody')\r\n                              \" id=\"requestValueType{{ i }}{{ j }}\" formControlName=\"valueForm\"\r\n                              class=\"form-control selection\">\r\n                              <option value=\"null\" disabled selected>\r\n                                Select a value from\r\n                              </option>\r\n                              <option *ngFor=\"let option of options\" [value]=\"option.value\">\r\n                                {{ option.label }}\r\n                              </option>\r\n                            </select>\r\n                            <div *ngIf=\"showError && !moduleForm.value.webhooks[i]?.requestBodies?.[j]?.valueForm\"\r\n                              class=\"invalid-feedback d-flex\">\r\n                              {{ \"Value From is required\"  }}\r\n                            </div>\r\n                          </div>\r\n                          <div class=\"form-field\" *ngIf=\"\r\n                              initializeIndex(i, j, 'requestBody') ===\r\n                                undefined || true\r\n                            \">\r\n                            <label for=\"requestValue{{ i }}{{ j }}\">{{\r\n                              \"Value\" \r\n                              }}<span class=\"text-danger\"> *</span></label>\r\n                            <input *ngIf=\"!isQuestionSelectedRequest[i][j]\" id=\"requestValue{{ i }}{{ j }}\"\r\n                              formControlName=\"value\" type=\"text\" class=\"form-control\" placeholder=\"Enter the value\"/>\r\n                            <select *ngIf=\"isQuestionSelectedRequest[i][j]\" id=\"requestValueSelect{{ i }}{{ j }}\"\r\n                              formControlName=\"value\" class=\"form-control selection\">\r\n                              <option value=\"\" selected>Select a question</option>\r\n                              <ng-container\r\n                                *ngFor=\"let option of questions?.value\"\r\n                              >\r\n                                <option\r\n                                  *ngIf=\"option.label?.trim() !== ''\"\r\n                                  [value]=\"option.id\"\r\n                                >\r\n                                  {{ option.label }}\r\n                                </option>\r\n                              </ng-container>\r\n                            </select>\r\n                              <div *ngIf=\"showError && !moduleForm.value.webhooks[i]?.requestBodies?.[j]?.value\"\r\n                              class=\"invalid-feedback d-flex\">\r\n                              {{ \"Value is required\"  }}\r\n                            </div>\r\n                          </div>\r\n                          <div class=\"flex-group justify-content-end pt-md-4\">\r\n                            <button\r\n                              type=\"button\"\r\n                              (click)=\"removeParameter(i, j, 'requestBodies')\"\r\n                              class=\"btn-icon\"\r\n                            >\r\n                              <img\r\n                                src=\"assets/icons/bin-icon.svg\"\r\n                                alt=\"Delete Icon\"\r\n                              />\r\n                            </button>\r\n                          </div>\r\n                        </div>\r\n                      </div>\r\n                    </div>\r\n                    <div class=\"button-container\">\r\n                      <button\r\n                        type=\"button\"\r\n                        (click)=\"addParameter(i, 'requestBodies')\"\r\n                        class=\"btn-icon\"\r\n                      >\r\n                        <img\r\n                          class=\"add_icon\"\r\n                          src=\"assets/icons/plus-icon.svg\"\r\n                          alt=\"Add Icon\"\r\n                        />\r\n                      </button>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n        <div class=\"btn-container\">\r\n          <button\r\n            type=\"button\"\r\n            (click)=\"addWebhook()\"\r\n            class=\"btn-icon center webhook-btn\"\r\n          >\r\n            <img\r\n              class=\"add_icon\"\r\n              src=\"assets/icons/plus-icon.svg\"\r\n              alt=\"Add Icon\"\r\n            />\r\n            {{ \"Add Webhook\"  }}\r\n          </button>\r\n        </div>\r\n      </div>\r\n  \r\n  \r\n      <div class=\"emitter-container\">\r\n  \r\n        <div class=\"emitter-header\" (click)=\"toggleEmitter()\">\r\n          \r\n          <p class=\"mb-0\">On Save Event Emitter</p>\r\n          <div>\r\n            <button type=\"button\" class=\"btn-icon\"\r\n            *ngIf=\"!emitterOpened\">\r\n              <img class=\"up-arrow-icon\" src=\"assets/icons/up-arrow-icon.svg\" alt=\"Up Arrow Icon\" />\r\n            </button>\r\n            <button type=\"button\" class=\"btn-icon\"\r\n            *ngIf=\"emitterOpened\">\r\n              <img class=\"arrow-icon\" src=\"assets/icons/down-arrow-icon.svg\" alt=\"Down Arrow Icon\" />\r\n            </button>\r\n          </div>\r\n        </div>\r\n  \r\n        <div *ngIf=\"emitterOpened\">\r\n  \r\n  \r\n        <div formArrayName=\"emitters\">\r\n  \r\n          <div\r\n            class=\"flex-group\"\r\n            *ngFor=\"\r\n              let emitter of emitters.controls;\r\n              let i = index;\r\n              trackBy: trackByIndex\r\n            \"\r\n            [formGroupName]=\"i\"\r\n          >\r\n  \r\n  \r\n  \r\n          <div class=\"form-group\">\r\n            <div class=\"d-md-flex justify-content-md-between\">\r\n              <div class=\"form-field\">\r\n                <label for=\"emitterName{{ i }}\">{{\r\n                  \"Name\" \r\n                }}<span class=\"text-danger\"> *</span></label>\r\n                <input\r\n                  id=\"emitterName{{ i }}\"\r\n                  formControlName=\"name\"\r\n                  type=\"text\"\r\n                  class=\"form-control\"\r\n                />\r\n                <div\r\n                *ngIf=\"showError && !moduleForm.value.emitters[i]?.name\"\r\n                class=\"invalid-feedback d-flex\"\r\n              >\r\n                {{ \"Name is required\"  }}\r\n              </div>\r\n              </div>\r\n              <div class=\"form-field\">\r\n                <label for=\"emitterValueType{{ i }}\"\r\n                  >{{ \"Value From\"  }}<span class=\"text-danger\"> *</span></label\r\n                >\r\n                <select\r\n                  id=\"emitterValueType{{ i }}\"\r\n                  formControlName=\"valueForm\"\r\n                  class=\"form-control selection\"\r\n                  (change)=\"onValueFormChange(i)\"\r\n                >\r\n                  <option value=\"null\" disabled selected>\r\n                    Select a value from\r\n                  </option>\r\n                  <option\r\n                    *ngFor=\"let option of emitterOptions\"\r\n                    [value]=\"option.value\"\r\n                  >\r\n                    {{ option.label }}\r\n                  </option>\r\n                </select>\r\n                <div\r\n                *ngIf=\"showError && !moduleForm.value.emitters[i]?.valueForm\"\r\n                class=\"invalid-feedback d-flex\"\r\n              >\r\n                {{ \"Value From is required\"  }}\r\n              </div>\r\n              </div>\r\n              <div\r\n                class=\"form-field\"\r\n              >\r\n                <label for=\"emitterValue{{ i }}\">{{\r\n                  \"Value\" \r\n                }}<span class=\"text-danger\"> *</span></label>\r\n                <input\r\n                *ngIf=\"emitter.get('valueForm')?.value === 'CUSTOM_INPUT'\"\r\n                  id=\"emitterValue{{ i }}\"\r\n                  formControlName=\"value\"\r\n                  type=\"text\"\r\n                  class=\"form-control\"\r\n                  placeholder=\"Enter the value\"\r\n                />\r\n                <select\r\n                *ngIf=\"emitter.get('valueForm')?.value === 'QUESTION'\"\r\n                  id=\"emitterValueSelect{{ i }}\"\r\n                  formControlName=\"value\"\r\n                  class=\"form-control selection\"\r\n                >\r\n                  <option value=\"\" selected>Select a question</option>\r\n                  <ng-container\r\n                    *ngFor=\"let option of questions?.value\"\r\n                  >\r\n                    <option\r\n                      *ngIf=\"option.label?.trim() !== ''\"\r\n                      [value]=\"option.id\"\r\n                    >\r\n                      {{ option.label }}\r\n                    </option>\r\n                  </ng-container>\r\n                </select>\r\n                <div\r\n                *ngIf=\"showError && !moduleForm.value.emitters[i]?.value\"\r\n                class=\"invalid-feedback d-flex\"\r\n              >\r\n                {{ \"Value is required\"  }}\r\n              </div>\r\n              </div>\r\n              <div class=\"flex-group justify-content-end pt-md-4\">\r\n                <button\r\n                  type=\"button\"\r\n                  class=\"btn-icon\"\r\n                  (click)=\"removeEmitter(i)\"\r\n                >\r\n                  <img\r\n                    src=\"assets/icons/bin-icon.svg\"\r\n                    alt=\"Delete Icon\"\r\n                  />\r\n                </button>\r\n              </div>\r\n            </div>\r\n          </div>\r\n  \r\n  \r\n  \r\n  \r\n        </div>\r\n        </div>\r\n  \r\n        <div class=\"btn-container\">\r\n          <button\r\n            type=\"button\"\r\n            class=\"btn-icon center webhook-btn\"\r\n            (click)=\"addEmitters()\"\r\n          >\r\n            <img\r\n              class=\"add_icon\"\r\n              src=\"assets/icons/plus-icon.svg\"\r\n              alt=\"Add Icon\"\r\n            />\r\n            {{ \"Add\"  }}\r\n          </button>\r\n        </div>\r\n  \r\n        </div>\r\n      </div>\r\n  \r\n  \r\n  \r\n      <div class=\"btn-container\">\r\n        <button (click)=\"onSubmit()\" type=\"submit\" class=\"btn btn-submit\">\r\n          <span *ngIf=\"moduleId; else newModule\">{{ \"Update\"  }}</span>\r\n          <ng-template #newModule>Submit</ng-template>\r\n        </button>\r\n      </div>\r\n    </form>\r\n  </div>\r\n  ","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { DataService } from '../services/data.service';\r\nimport { AuthService } from '../services/auth.service';\r\n\r\n@Component({\r\n  selector: 'lib-moduleConfiguration',\r\n  templateUrl: './module-configuration.component.html',\r\n  styles: [\r\n  ]\r\n})\r\nexport class ModuleConfigurationComponent {\r\n\r\n  @Input() moduleData:any;\r\n  @Output() goBackToList = new EventEmitter<boolean>();\r\n  @Output() onSaveModule = new EventEmitter<any>();\r\n\r\n  constructor(\r\n    private dataService:DataService,\r\n    private authService:AuthService\r\n  ){}\r\n  \r\n  ngOnInit(){\r\n    this.dataService.setApiUrl(this.moduleData.apiurl);\r\n    this.authService.setHeader(this.moduleData.headers);\r\n  }\r\n\r\n  goback(){\r\n    this.goBackToList.emit();\r\n  }\r\n\r\n  saveModule(event:any){\r\n    this.onSaveModule.emit(event);\r\n  }\r\n\r\n}\r\n","<lib-module\r\n[moduleId]=\"moduleData.moduleId\"\r\n(goBackToList)=\"goback()\"\r\n(saveModule)=\"saveModule($event)\"\r\n></lib-module>","import { NgModule } from '@angular/core';\r\nimport { ModuleConfigurationComponent } from './module-configuration.component';\r\nimport { ModuleComponent } from './components/module/module.component';\r\nimport { ApiService } from '../services/api.service';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { DropdownModule } from '@piserve-tech/drop-down';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { ConfirmDialogComponent } from './components/confirm-dialog/confirm-dialog.component';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    ModuleConfigurationComponent,\r\n    ModuleComponent,\r\n    ConfirmDialogComponent\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    ReactiveFormsModule,\r\n    DropdownModule,\r\n    FormsModule,\r\n    NgSelectModule,\r\n    NgbModule,\r\n    ToastrModule.forRoot({\r\n      positionClass: 'toast-bottom-left',\r\n      preventDuplicates: true,\r\n    }),\r\n    MatDialogModule,\r\n  ],\r\n  exports: [\r\n    ModuleConfigurationComponent\r\n  ],\r\n  providers: [ApiService],\r\n})\r\nexport class ModuleConfigurationModule { }\r\n","/*\r\n * Public API Surface of module-configuration\r\n */\r\n\r\nexport * from './lib/module-configuration.service';\r\nexport * from './lib/module-configuration.component';\r\nexport * from './lib/module-configuration.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uuidv4","i1","i2.DataService","i3.AuthService","i1.ApiService","i4","i1.DataService","i2.AuthService","i3.ModuleComponent"],"mappings":"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"}