{"version":3,"file":"json-reactive-form-angular-14.mjs","sources":["../../../projects/modal-pop-up/src/lib/reactive-json-forms-controller/material.module.ts","../../../projects/modal-pop-up/src/lib/reactive-json-forms-controller/shared-home.module.ts","../../../projects/modal-pop-up/src/lib/reactive-json-forms-controller/service/upload-service-validator.service.ts","../../../projects/modal-pop-up/src/lib/reactive-json-forms-controller/upload-components/inner-dynamic-error/inner-dynamic-error.component.ts","../../../projects/modal-pop-up/src/lib/reactive-json-forms-controller/upload-components/inner-dynamic-error/inner-dynamic-error.component.html","../../../projects/modal-pop-up/src/lib/reactive-json-forms-controller/upload-components/upload-components.component.ts","../../../projects/modal-pop-up/src/lib/reactive-json-forms-controller/upload-components/upload-components.component.html","../../../projects/modal-pop-up/src/lib/reactive-json-forms-controller/upload-components/more-content/more-content.component.ts","../../../projects/modal-pop-up/src/lib/reactive-json-forms-controller/upload-components/more-content/more-content.component.html","../../../projects/modal-pop-up/src/lib/json-reactive-form.module.ts","../../../projects/modal-pop-up/src/lib/reactive-json-forms-controller/upload-components/pipe/custom-slice-pipe.pipe.ts","../../../projects/modal-pop-up/src/public-api.ts","../../../projects/modal-pop-up/src/json-reactive-form-angular-14.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox'; // Import MatCheckboxModule\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,\r\n    MatButtonModule,\r\n    MatDialogModule,\r\n    MatInputModule,\r\n    MatToolbarModule,\r\n    MatCardModule,\r\n    MatCheckboxModule, // Add here\r\n  ],\r\n  exports: [\r\n    MatButtonModule,\r\n    MatDialogModule,\r\n    MatInputModule,\r\n    MatToolbarModule,\r\n    MatCardModule,\r\n    MatCheckboxModule, // Export here\r\n  ]\r\n})\r\nexport class MaterialModule {}\r\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { OverlayModule } from \"@angular/cdk/overlay\";\r\nimport { MaterialModule } from \"./material.module\";\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,\r\n    FormsModule,\r\n    ReactiveFormsModule,\r\n    BrowserAnimationsModule,\r\n    OverlayModule,\r\n    MaterialModule\r\n  ],\r\n  providers: [],\r\n  schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n  exports: [\r\n    CommonModule,\r\n    FormsModule,\r\n    BrowserAnimationsModule,\r\n    ReactiveFormsModule,\r\n    OverlayModule,\r\n    MaterialModule\r\n  ],\r\n})\r\nexport class SharedHomeModule {\r\n  ScriptElement?: HTMLScriptElement;\r\n  JquerySrciptElement?: HTMLScriptElement;\r\n\r\n  constructor() {\r\n\r\n    // bootstrap .css add in head\r\n    this.JquerySrciptElement = document.createElement('script');\r\n    this.JquerySrciptElement.src = 'https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js';\r\n    document.body.appendChild(this.JquerySrciptElement);\r\n\r\n    // bootstrap script.js add in body\r\n    this.ScriptElement = document.createElement(\"script\");\r\n    this.ScriptElement.src = \"https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/js/bootstrap.min.js\";\r\n    document.body.appendChild(this.ScriptElement);\r\n\r\n    // bootstrap .css add in head\r\n    const linkElement = document.createElement('link');\r\n    linkElement.rel = 'stylesheet';\r\n    linkElement.href = 'https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css';\r\n    document.head.appendChild(linkElement);\r\n  }\r\n}","import { ElementRef, Injectable, OnInit, Output } from '@angular/core';\r\nimport { AbstractControl, FormArray, FormControl, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { BehaviorSubject, debounceTime } from 'rxjs';\r\n\r\ninterface FieldRules {\r\n  required?: boolean; // Whether the field is required\r\n}\r\n\r\ninterface FieldConfig {\r\n  type: string; // Type of input field, e.g., \"text\", \"number\"\r\n  value: any; // The default value of the field\r\n  label: string; // The label for the field\r\n  rules: FieldRules; // Validation rules for the field\r\n  minLength?: number; // Minimum length for the input value\r\n  maxLength?: number; // Maximum length for the input value\r\n  pattern?: string; // Regex pattern to validate the input\r\n  customValidator?: (value: string) => boolean; // Function for custom validation\r\n  placeholderText?: string; // Placeholder text for the field\r\n  items?: Array<any>;\r\n  Inputdisabled?: boolean; // Whether the field is required\r\n  buttonList?: Array<any>;\r\n  buttonStyle?: string;\r\n  NgClass?: string;\r\n  InputType?: string;\r\n  ButtonText?: string;\r\n  showhide?: boolean;\r\n  autofill?: Array<any>;\r\n  checkboxlabel?: Array<any>;\r\n  HideShowInput?: Array<any>;\r\n  errorMessage?: string;\r\n  ParentStyle?: string\r\n}\r\n\r\ninterface FormConfig {\r\n  [key: string]: FieldConfig; // Allows multiple fields with different names\r\n}\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ReactiveJsonFormsService implements OnInit {\r\n  dynamicFormGroup: any = [];\r\n  model = {};\r\n  SHIPPING_BILL_LIST: any = [];\r\n  BL_COPY_LIST: any = [];\r\n  COMMERICAL_NO: any = [];\r\n  ORM_BY_PARTY_NAME: any = [];\r\n  ORM_SELECTION_DATA: any = [];\r\n  BOE_LIST: any = [];\r\n  CURRENCY_LIST: any = [];\r\n  BUYER_DETAILS: any = [];\r\n  BUYER_ADDRESS_DETAILS: any = [];\r\n  BENEFICIARY_DETAILS: any = [];\r\n  BENEFICIARY_ADDRESS_DETAILS: any = [];\r\n  INWARD_REMITTANCE_NAME_LIST: any = [];\r\n  NEW_INWARD_REMITTANCE_NAME_LIST: any = [];\r\n  BUYER_REMITTANCE_NAME_LIST: any = [];\r\n  ConsigneeNameList: any = [];\r\n  PIPO_DATA: any = [];\r\n  pipourl1: any = '';\r\n  pipoArr: any = [];\r\n  BUYER_LIST: any = [];\r\n  CommercialNumber: any = [];\r\n  COMMERCIAL_LIST: any = [];\r\n  commerciallist: any = [];\r\n  SHIPPING_BUNDEL: any = [];\r\n  SHIPPING_BILL_MASTER_DATA: any = [];\r\n  SUBMIT_ERROR: boolean = false;\r\n  origin: any = [];\r\n  commodity: any = [];\r\n  location: any = [];\r\n  bankDetail: any = [];\r\n  bankDetail2: any = [];\r\n  Id: any = '';\r\n  BANK_NAME_LIST_GLOABL: any = [];\r\n  FIELDS_DATA: any = [];\r\n  LOGIN_TOEKN: any = '';\r\n  userData: any = [];\r\n  BUYER_NOT_EXITS: boolean = false;\r\n  BENEFICIARY_NOT_EXITS: boolean = false;\r\n  SELECTED_PIPO: any = [];\r\n  SELECTED_PIPO_ID: any = [];\r\n  ToChargesAccountdata: any = [];\r\n  ToCreditAccountdata: any = [];\r\n  BANK_LIST_DROPDOWN: any = [];\r\n  ORIGANL_BANK_LIST_DROPDOWN: any = [];\r\n  CommericalNo: ElementRef | any;\r\n  BUYER_DETAILS_MASTER: any = [];\r\n  BUYER_DETAILS_DROPDOWN_MASTER: any = [];\r\n  COMPANY_INFO: any = [];\r\n  CHECK_BOX_BANK_LIST: any = [];\r\n  CHECK_BOX_BANK_LIST_CHARGES: any = [];\r\n  CHECK_BOX_REMITTER_LIST: any = [];\r\n  REMITTER_LIST: any = []\r\n  PIPO_LIST: any = {\r\n    \"Import\": [],\r\n    \"Export\": [],\r\n    \"CI_EXPORT\": [],\r\n    \"CI_IMPORT\": []\r\n  };\r\n  ORM_LIST: any = {\r\n    \"Import\": [],\r\n    \"Export\": [],\r\n    \"CI_EXPORT\": [],\r\n    \"CI_IMPORT\": []\r\n  };\r\n  DAN_LIST: any = [];\r\n  PAYMENTS_TEMRS: any = [];\r\n  PURPOSE_CODE_FILTER_DATA: any = [];\r\n  PURPOSE_CODE_LIST_DATA: any = [];\r\n  A2_JSON_DATA: any = []\r\n  sumTotalAmount: any = 0;\r\n  SELECTED_PURPOSE_CODE_DATA: any = [];\r\n  SELECTED_PURPOSE_CODE_INDEX: any = [];\r\n  SELECTED_PURPOSE_CODE_DUMP_SLEECTION: any = [];\r\n  UPLOAD_STATUS: boolean = false;\r\n  USER_DATA: any = [];\r\n  PIPO_TRANSCTION_LIST: any = [];\r\n  DROP_DOWN_DATA: any = [];\r\n  ALL_DATA_PURPOSE_CODE: any = '';\r\n  SELECT_REPORT_TYPE: any = null;\r\n  ARRAY_LIST_DROP_DOWN_DATA: any = [];\r\n  HSCODE_FEILD_FORM: any = {\r\n    id: \"\",\r\n    form: \"\",\r\n    fieldName: \"\",\r\n    OptionfieldIndex: \"\",\r\n    FormOptionfieldName: \"\",\r\n    value: \"\",\r\n    callback: \"\",\r\n    field: \"\",\r\n    NewId: \"\"\r\n  }\r\n  MT102_SUBJECT: any = ''\r\n  ReferenceNumber = this.getReferenceNumber();\r\n  FORM_VALUE_CHANGES: any = new BehaviorSubject([]);\r\n  AFTER_BUILD_FORM: BehaviorSubject<any> = new BehaviorSubject([]);\r\n  SUBMIT_FORM: BehaviorSubject<any> = new BehaviorSubject([]);\r\n  BuyerSpecificConsigneeNameList: any = [];\r\n  ArraySelectOption: any = [];\r\n\r\n  constructor() {\r\n    this.ReferenceNumber = this.getReferenceNumber();\r\n  }\r\n\r\n  ResignReferenceNumber() {\r\n    this.ReferenceNumber = this.getReferenceNumber();\r\n  }\r\n\r\n  ngOnInit(): void {\r\n\r\n  }\r\n\r\n  getReferenceNumber() {\r\n    return (Math.floor((Math.random() + Math.floor(Math.random() * 9) + 1) * Math.pow(10, 8)))?.toString();\r\n  }\r\n\r\n  toWords(s: any) {\r\n    var th = ['', 'thousand', 'million', 'billion', 'trillion'];\r\n    var dg = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];\r\n    var tn = ['ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen'];\r\n    var tw = ['twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety'];\r\n    s = s.toString();\r\n    s = s.replace(/[\\, ]/g, '');\r\n    if (s != parseFloat(s)) return 'not a number';\r\n    var x = s.indexOf('.');\r\n    if (x == -1)\r\n      x = s.length;\r\n    if (x > 15)\r\n      return 'too big';\r\n    var n = s.split('');\r\n    var str = '';\r\n    var sk = 0;\r\n    for (var i = 0; i < x; i++) {\r\n      if ((x - i) % 3 == 2) {\r\n        if (n[i] == '1') {\r\n          str += tn[Number(n[i + 1])] + ' ';\r\n          i++;\r\n          sk = 1;\r\n        } else if (n[i] != 0) {\r\n          str += tw[n[i] - 2] + ' ';\r\n          sk = 1;\r\n        }\r\n      } else if (n[i] != 0) { // 0235\r\n        str += dg[n[i]] + ' ';\r\n        if ((x - i) % 3 == 0) str += 'hundred ';\r\n        sk = 1;\r\n      }\r\n      if ((x - i) % 3 == 1) {\r\n        if (sk)\r\n          str += th[(x - i - 1) / 3] + ' ';\r\n        sk = 0;\r\n      }\r\n    }\r\n\r\n    if (x != s.length) {\r\n      var y = s.length;\r\n      str += 'point ';\r\n      for (let i = x + 1; i < y; i++)\r\n        str += dg[n[i]] + ' ';\r\n    }\r\n    return str.replace(/\\s+/g, ' ')?.toUpperCase();\r\n  }\r\n\r\n  BENEFICIARY_DETAILS_LIST: any = [];\r\n  filterData(data: any) {\r\n    this.PURPOSE_CODE_FILTER_DATA = this.A2_JSON_DATA.filter((item: any) => item?.RBI_Purpose_Code.includes(data));\r\n    if (this.PURPOSE_CODE_FILTER_DATA.length == 0 || data == '') {\r\n      this.PURPOSE_CODE_FILTER_DATA = this.A2_JSON_DATA;\r\n    }\r\n  }\r\n\r\n  text_array(text: any) {\r\n    let split_text: any = text?.indexOf(\"\\n\") != -1 ? text?.split('\\n') : [text];\r\n    return split_text;\r\n  }\r\n\r\n  COMPANY_SELECTED_BANK_DETAILS: any = [];\r\n  async buildForm(model: FormConfig, id: string) {\r\n    console.log(model, \"model\")\r\n    this.FORM_VALUE_CHANGES[id] = new BehaviorSubject([]);\r\n    return new Promise(async (resolve, reject) => {\r\n      const formGroupFields = await this.getFormControlsFields(model, id);\r\n      this.dynamicFormGroup[id] = await new FormGroup(formGroupFields?.formGroupFields);\r\n      this.FIELDS_DATA[id] = formGroupFields?.fields;\r\n      await this.dynamicFormGroup;\r\n      await resolve(this.dynamicFormGroup);\r\n      this.dynamicFormGroup[id]?.valueChanges.pipe(debounceTime(200))?.subscribe((x: any) => {\r\n        this.FORM_VALUE_CHANGES[id].next({ status: this.dynamicFormGroup[id]?.status, form: this.dynamicFormGroup[id], value: x, id: id })\r\n      });\r\n      this.AFTER_BUILD_FORM.next({ status: this.dynamicFormGroup[id]?.status, form: this.dynamicFormGroup[id], id: id })\r\n      await this.FIELDS_DATA[id]?.forEach((element: any) => {\r\n        if (element?.type === \"yesnocheckbox\") {\r\n          element?.HideShowInput?.forEach((HideShowInputElement: any) => {\r\n            const index = this.FIELDS_DATA[id]?.findIndex((val: any) => val?.fieldName?.includes(HideShowInputElement?.name));\r\n            if (index != -1) {\r\n              if (HideShowInputElement?.status == true) {\r\n                this.FIELDS_DATA[id][index]['disabled'] = false;\r\n                this.dynamicFormGroup[id]?.controls[HideShowInputElement?.name]?.enable();\r\n              } else {\r\n                this.FIELDS_DATA[id][index]['disabled'] = true;\r\n                this.dynamicFormGroup[id]?.controls[HideShowInputElement?.name]?.disable();\r\n              }\r\n            }\r\n          });\r\n        }\r\n        if (element?.type === \"YesNoRadioButton\") {\r\n          element?.HideShowInput?.forEach((HideShowInputElement: any) => {\r\n            const index = this.FIELDS_DATA[id]?.findIndex((val: any) => val?.fieldName?.includes(HideShowInputElement?.name));\r\n            if (index != -1) {\r\n              if (HideShowInputElement?.status == true) {\r\n                this.FIELDS_DATA[id][index]['disabled'] = false;\r\n                this.dynamicFormGroup[id]?.controls[HideShowInputElement?.name]?.enable();\r\n              } else {\r\n                this.FIELDS_DATA[id][index]['disabled'] = true;\r\n                this.dynamicFormGroup[id]?.controls[HideShowInputElement?.name]?.disable();\r\n              }\r\n            }\r\n          });\r\n        }\r\n      });\r\n    })\r\n  }\r\n\r\n  setBankList(data: any) {\r\n    this.BANK_NAME_LIST_GLOABL = [];\r\n    setTimeout(() => {\r\n      this.BANK_NAME_LIST_GLOABL = data;\r\n    }, 200);\r\n  }\r\n\r\n  async getFormControlsFields(model: any, formid: any) {\r\n    const formGroupFields: any = {};\r\n    const fields: any = [];\r\n    for (const field of Object.keys(model)) {\r\n      const fieldProps = model[field];\r\n      if (fieldProps?.type === \"formArray\") {\r\n        const tempFormGroup = this.createFormArray(fieldProps, formid, field);\r\n        formGroupFields[field] = await tempFormGroup.array;\r\n        fieldProps['NewformGroup'] = tempFormGroup.fields;\r\n        fieldProps['RemoveListIndex'] = [{ START_INDEX: -1, LAST_INDEX: -1 }];\r\n        fields.push({ ...fieldProps, fieldName: field });\r\n      } else if (fieldProps?.type === \"formGroup\" && fieldProps?.formArray) {\r\n        const nestedGroupControls = this.createNestedFormGroups(fieldProps, formid, field);\r\n        formGroupFields[field] = await new FormArray(nestedGroupControls);\r\n        fields.push({ ...fieldProps, fieldName: field });\r\n      } else {\r\n        formGroupFields[field] = this.createFormControl(fieldProps, formid, field);\r\n        fields.push({ ...fieldProps, fieldName: field });\r\n      }\r\n    }\r\n    return { formGroupFields, fields };\r\n  }\r\n\r\n  // Helper Functions\r\n  private createFormArray(fieldProps: any, formid: any, field: any) {\r\n    const tempFormGroup: FormGroup[] = [];\r\n    const fields: any[] = [];\r\n    for (const element of fieldProps.formGroup) {\r\n      for (const field of Object.keys(element)) {\r\n        const control: any = new FormControl({\r\n          value: element[field]?.value || \"\",\r\n          disabled: element[field]?.disabled !== undefined,\r\n        }, this.setRequired(element[field]?.minLength, element[field]?.maxLength, element[field]?.rules, formid, field)[element[field]?.type || element[field]?.typeOf]);\r\n\r\n        tempFormGroup.push(control);\r\n        fields.push({ ...element[field], fieldName: field });\r\n      }\r\n    }\r\n\r\n    return { array: new FormArray(tempFormGroup), fields };\r\n  }\r\n\r\n  private createNestedFormGroups(fieldProps: any, formid: any, field: any) {\r\n    const tempFormGroup: FormGroup[] = [];\r\n    for (const element of fieldProps.formArray) {\r\n      const optionControls: any = {};\r\n      for (const opt of element) {\r\n        optionControls[opt.name] = this.createFormControl(opt, formid, field);\r\n      }\r\n      tempFormGroup.push(new FormGroup(optionControls));\r\n    }\r\n    return tempFormGroup;\r\n  }\r\n\r\n  private createFormControl(fieldProps: any, formid: any, field: any) {\r\n    return new FormControl({\r\n      value: fieldProps.value,\r\n      disabled: fieldProps.disabled !== undefined,\r\n    }, this.setRequired(fieldProps.minLength, fieldProps.maxLength, fieldProps.rules, formid, field)[fieldProps.type || fieldProps.typeOf]);\r\n  }\r\n\r\n  ControlSetValue(id: any, key: any, value: any) {\r\n    this.FIELDS_DATA[id]?.[key]?.setValue(value);\r\n  }\r\n\r\n  setValueFromArray(id: any, form: any, fieldName: any, OptionfieldIndex: any, FormOptionfieldName: any, value: any, callback: any = undefined, field: any = undefined) {\r\n    const myForm: any = form?.controls[fieldName] as FormGroup;\r\n    let currentVal = value;\r\n    myForm.value[OptionfieldIndex][FormOptionfieldName] = currentVal;\r\n    myForm?.controls[OptionfieldIndex]?.controls[FormOptionfieldName]?.setValue(currentVal);\r\n    myForm['touched'] = true;\r\n    myForm['status'] = 'VALID';\r\n    this.dynamicFormGroup[id].get(fieldName).clearValidators();\r\n    this.dynamicFormGroup[id].get(fieldName).updateValueAndValidity();\r\n    if (callback != undefined && callback != null) {\r\n      callback({ id: id, form: form, fieldName: fieldName, OptionfieldIndex: OptionfieldIndex, FormOptionfieldName: FormOptionfieldName, value: value, dynamicFormGroup: this.dynamicFormGroup[id], field: this.FIELDS_DATA[id] });\r\n    }\r\n  }\r\n\r\n  setValueFrom(id: any, form: any, fieldName: any, value: any, callback: any = undefined, field: any = undefined) {\r\n    const myForm: any = form?.controls[fieldName] as FormGroup;\r\n    let currentVal = value;\r\n    myForm?.setValue(currentVal);\r\n    myForm['touched'] = true;\r\n    myForm['status'] = 'VALID';\r\n    this.dynamicFormGroup[id].get(fieldName).clearValidators();\r\n    this.dynamicFormGroup[id].get(fieldName).updateValueAndValidity();\r\n    if (callback != undefined && callback != null) {\r\n      callback({ id: id, form: form, fieldName: fieldName, value: value, dynamicFormGroup: this.dynamicFormGroup[id], field: field });\r\n    }\r\n  }\r\n\r\n  setValueFromChildArray(id: any, form: any, ParentfieldName: any, FormArrayfieldName: any, OptionfieldIndex: any,\r\n    ChildOptionfieldName: any, ChildOptionfieldIndex: any, FormOptionfieldName: any, value: any, callback: any = undefined, field: any = undefined) {\r\n    const myForm: any = form?.controls[ParentfieldName] as FormGroup;\r\n    let currentVal = value;\r\n    myForm.value[OptionfieldIndex][FormOptionfieldName][ChildOptionfieldIndex][ChildOptionfieldName] = currentVal;\r\n    myForm?.controls[OptionfieldIndex]?.controls[FormOptionfieldName]?.setValue(currentVal);\r\n    myForm['touched'] = true;\r\n    myForm['status'] = 'VALID';\r\n    this.dynamicFormGroup[id].get(FormArrayfieldName).clearValidators();\r\n    this.dynamicFormGroup[id].get(FormArrayfieldName).updateValueAndValidity();\r\n    if (callback != undefined && callback != null) {\r\n      callback({ id: id, form: form, fieldName: FormArrayfieldName, OptionfieldIndex: OptionfieldIndex, FormOptionfieldName: FormOptionfieldName, value: value, dynamicFormGroup: this.dynamicFormGroup[id], field: this.FIELDS_DATA[id] });\r\n    }\r\n  }\r\n\r\n  ConfirmedValidator(controlName: string, matchingControlName: string): any {\r\n    return (formGroup: FormGroup) => {\r\n      const control = formGroup.controls[controlName];\r\n      const matchingControl: any = formGroup.controls[matchingControlName];\r\n      if (matchingControl?.errors && !matchingControl?.errors?.confirmedValidator) {\r\n        return;\r\n      }\r\n      if (control.value !== matchingControl.value) {\r\n        matchingControl.setErrors({ confirmedValidator: true });\r\n      } else {\r\n        matchingControl.setErrors(null);\r\n      }\r\n    };\r\n  }\r\n\r\n  setRequired(minLength: number | undefined, maxLength: number | undefined, rule: any, formid: any, field: any): any {\r\n    const baseValidators = [\r\n      minLength !== undefined ? Validators.minLength(minLength) : Validators.minLength(0),\r\n      maxLength !== undefined ? Validators.maxLength(maxLength) : Validators.maxLength(100)\r\n    ];\r\n\r\n    const requiredValidator = rule?.required ? [Validators.required] : [];\r\n    const combinedValidators = (type: string) => {\r\n      return [...requiredValidator, ...baseValidators, ...(field?.Validator || [])];\r\n    };\r\n\r\n    const validatorsMap = {\r\n      text: combinedValidators('text'),\r\n      textarea: combinedValidators('textarea'),\r\n      date: combinedValidators('date'),\r\n      datetime: combinedValidators('datetime'),\r\n      time: combinedValidators('time'),\r\n      Address: combinedValidators('Address'),\r\n      number: combinedValidators('number'),\r\n      Amount: combinedValidators('Amount'),\r\n      OnlyNumber: combinedValidators('OnlyNumber'),\r\n      TextValiadtion: [...combinedValidators('TextValiadtion'), hasAmountLessThanForm(field?.EqualName, field?.errormsg)],\r\n      TextGreaterValiadtion: [...combinedValidators('TextGreaterValiadtion'), hasAmountGreaterThanForm(field?.EqualName, field?.errormsg)],\r\n      buyer: requiredValidator,\r\n      ArrayCheckbox: requiredValidator,\r\n      CompanyBankList: requiredValidator,\r\n      MultipleMatCheckBox: requiredValidator,\r\n      YesNoRadioButton: requiredValidator,\r\n      BuyerRemitter: requiredValidator,\r\n      AddSignature: requiredValidator,\r\n      AddressInfo: requiredValidator,\r\n      AxisBankMultiCheckBox: requiredValidator,\r\n      MultiCheckBoxSelectionOption: requiredValidator,\r\n      Newbuyer: requiredValidator,\r\n      ReUpload: requiredValidator,\r\n      DropDown: requiredValidator,\r\n      button: requiredValidator,\r\n      checkbox: requiredValidator,\r\n      ArraySelectOption: requiredValidator,\r\n      PURPOSE_CODE: requiredValidator,\r\n      CheckboxMultiple: requiredValidator,\r\n      SelectOption: requiredValidator,\r\n      BankAdd: requiredValidator,\r\n      RemitterCheckBox: requiredValidator,\r\n      ShippingBill: requiredValidator,\r\n      BankCheckBox: requiredValidator,\r\n      ImagesList: requiredValidator,\r\n      consignee: requiredValidator,\r\n      BuyerSpecificConsignee: requiredValidator,\r\n      commodity: requiredValidator,\r\n      commodityadd: requiredValidator,\r\n      origin: requiredValidator,\r\n      location: requiredValidator,\r\n      PaymentType: requiredValidator,\r\n      Bank: requiredValidator,\r\n      BankList: requiredValidator,\r\n      currency: requiredValidator,\r\n      CommericalNo: requiredValidator,\r\n      typedocument: requiredValidator,\r\n      PaymentTermType: requiredValidator,\r\n      undefined: requiredValidator,\r\n      MatchedValue: requiredValidator,\r\n      Underlying: requiredValidator,\r\n      BuySell: requiredValidator,\r\n      IncoTerm: requiredValidator,\r\n      MultiCheckBox: requiredValidator,\r\n      OptionMultiCheckBox: requiredValidator,\r\n      RemitterName: requiredValidator,\r\n      formGroup: requiredValidator,\r\n      benne: requiredValidator,\r\n      CommericalListCheckBox: requiredValidator,\r\n      BLCopy: requiredValidator,\r\n      yesnocheckbox: requiredValidator,\r\n      ArrayList: requiredValidator,\r\n      ArrayList_Object: requiredValidator,\r\n      InputButton: combinedValidators('InputButton'),\r\n      BOE: requiredValidator,\r\n      ORM_SELECTION: requiredValidator,\r\n      LABLE_CHECKBOX: requiredValidator,\r\n      EmailButton: requiredValidator,\r\n      NumberButton: requiredValidator,\r\n      AdvanceInfo: [],\r\n      NotRequired: [],\r\n      CallbackButton: [],\r\n      LabelShow: [],\r\n      OnlyLabelShow: [],\r\n      SB_DETAILS_SHOW: [],\r\n      ALPHA_NUMERIC: [\r\n        ...combinedValidators('ALPHA_NUMERIC'),\r\n        alphaNumericValidator\r\n      ],\r\n      email: combinedValidators('email'),\r\n      password: combinedValidators('password'),\r\n      confirmPassword: [\r\n        ...combinedValidators('confirmPassword'),\r\n        hasDuplicateControl({ key: 'confirmPassword', equalkey: 'password' }, this.dynamicFormGroup, formid)\r\n      ],\r\n    };\r\n\r\n    return validatorsMap;\r\n  }\r\n\r\n\r\n  removeRequiredValidator(condition: boolean, id: any, fieldName: any) {\r\n    const emailControl = this.dynamicFormGroup[id].get(fieldName);\r\n    if (emailControl) {\r\n      if (condition) {\r\n        emailControl.setValidators([Validators.required]);\r\n      } else {\r\n        emailControl.clearValidators();\r\n      }\r\n      emailControl.updateValueAndValidity();\r\n    }\r\n  }\r\n\r\n  valueChangesSpecficeName(id: any, fieldName: any) {\r\n    return this.dynamicFormGroup[id].get(fieldName)?.valueChanges;\r\n  }\r\n\r\n\r\n  removeDuplicates(data: any, key: any) {\r\n    let newArray: any = [];\r\n    let uniqueObject: any = {};\r\n    for (let i in data) {\r\n      let objTitle = data[i][key];\r\n      uniqueObject[objTitle] = data[i];\r\n    }\r\n    for (let i in uniqueObject) {\r\n      newArray.push(uniqueObject[i]);\r\n    }\r\n    return newArray;\r\n  }\r\n\r\n  max_length_validator(id: any, fieldName: any) {\r\n    if ((this.dynamicFormGroup[id]?.controls[fieldName]?.value?.length > this.dynamicFormGroup[id]?.controls[fieldName]?.errors?.['maxlength']?.requiredLength)) {\r\n      return false;\r\n    }\r\n    return true;\r\n  }\r\n\r\n  max_length_validatorFormArray(id: any, formGroupKey: any, index: any, fieldName: any) {\r\n    if ((this.dynamicFormGroup[id]?.controls[formGroupKey]?.controls[index]?.controls[fieldName]?.value?.length > this.dynamicFormGroup[id]?.controls[formGroupKey]?.controls[index]?.controls[fieldName]?.errors?.['maxlength']?.requiredLength)) {\r\n      return false;\r\n    }\r\n    return true;\r\n  }\r\n\r\n  counter = 0;\r\n  buildNewFormArray(field: any, index: any, element: any, formid: any, GroupLabel: any, MAX_LIMIT: any): any {\r\n    return new Promise(async (resolve, reject) => {\r\n      this.counter = GroupLabel.length + 1;\r\n      var temp: any = [];\r\n      var tempFormGroup: any = [];\r\n      let count: number = this.FIELDS_DATA[formid][index]['NewformGroup'].length;\r\n      let count1: number = this.FIELDS_DATA[formid][index]['NewformGroup'].length;\r\n      for (let field2 of Object.keys(element)) {\r\n        temp.push({ ...element[field2], fieldName: field2, index: count });\r\n        this.FIELDS_DATA[formid][index]['NewformGroup'].push({ ...element[field2], fieldName: field2, index: count });\r\n        tempFormGroup.push(new FormGroup({\r\n          [field2]: new FormControl({ value: element[field2]?.value || \"\", disabled: element[field2]?.disabled != undefined ? true : false },\r\n            this.setRequired(element[field2]?.minLength, element[field2]?.maxLength, element[field2]?.rules, formid, field2)[element[field2]?.typeOf != undefined ? element[field2]?.typeOf : element[field2]?.type])\r\n        }));\r\n        count++;\r\n      }\r\n      await this.FIELDS_DATA[formid][index]['formGroup'].push({ ... this.FIELDS_DATA[formid][index]['formGroup'][0], fieldName: field });\r\n      await this.FIELDS_DATA[formid][index]['RemoveListIndex'].push({ START_INDEX: count1, LAST_INDEX: count1 + MAX_LIMIT?.MAX_LIMIT });\r\n      await GroupLabel.push(GroupLabel[0].replace('1', GroupLabel?.length + 1));\r\n      await resolve(await tempFormGroup);\r\n    });\r\n  }\r\n\r\n  async addNewFormArray(id: any, index: any, fieldName: any) {\r\n    let optiontemp: any = {};\r\n    let OptiontempFormGroup: any = {};\r\n    let dumpformdata: any = this.FIELDS_DATA[id][index]?.NewformArray[this.FIELDS_DATA[id][index]?.NewformArray?.length - 1];\r\n    for (const key in dumpformdata) {\r\n      const fieldProps: any = dumpformdata[key];\r\n      optiontemp[fieldProps?.name] = ({ ...fieldProps, fieldName: fieldProps?.name });\r\n      OptiontempFormGroup[fieldProps?.name] = new FormControl({ value: \"\", disabled: fieldProps?.disabled != undefined ? true : false },\r\n        this.setRequired(fieldProps?.minLength, fieldProps?.maxLength, fieldProps?.rules, id, fieldProps)[fieldProps?.typeOf != undefined ? fieldProps?.typeOf : fieldProps?.type])\r\n    }\r\n    this.dynamicFormGroup[id]?.controls[fieldName]?.controls?.push(new FormGroup(OptiontempFormGroup));\r\n    this.dynamicFormGroup[id]?.controls[fieldName]?.value?.push(this.emptyvalue(this.dynamicFormGroup[id]?.controls[fieldName]?.value[this.dynamicFormGroup[id]?.controls[fieldName]?.value?.length - 1]));\r\n    this.FIELDS_DATA[id][index]['NewformArray']?.push(optiontemp);\r\n    this.FIELDS_DATA[id][index]['OrderKey']?.push(this.FIELDS_DATA[id][index]['OrderKey'][this.FIELDS_DATA[id][index]['OrderKey']?.length - 1]);\r\n    await this.FIELDS_DATA[id][index]?.GroupLabel?.push(this.FIELDS_DATA[id][index]?.GroupLabel[0]?.replace('1', this.FIELDS_DATA[id][index]?.GroupLabel?.length + 1));\r\n  }\r\n\r\n  emptyvalue(data: any) {\r\n    var temp: any = {};\r\n    for (const key in data) {\r\n      temp[key] = ''\r\n    }\r\n    return temp;\r\n  }\r\n\r\n  async removeNewFormArray(id: any, index: any, fieldName: any, OptionfieldIndex: any) {\r\n    this.dynamicFormGroup[id]?.controls[fieldName]?.controls?.splice(OptionfieldIndex, 1);\r\n    this.dynamicFormGroup[id]?.controls[fieldName]?.value?.splice(OptionfieldIndex, 1);\r\n    this.FIELDS_DATA[id][index]['NewformArray']?.splice(OptionfieldIndex, 1);\r\n    this.FIELDS_DATA[id][index]['NewformArray']?.forEach((element: any, index: any) => {\r\n      this.FIELDS_DATA[id][index]?.GroupLabel?.push(this.FIELDS_DATA[id][index]?.GroupLabel[0]?.replace('1', (index + 1)));\r\n    });\r\n  }\r\n\r\n  removeFormArray(formGroupKey: any, index: any, labelIndex: any, formid: any, MAX_LIMIT: any): any {\r\n    return new Promise(async (resolve, reject) => {\r\n      if (index != 0) {\r\n        let indexstore: any = this.FIELDS_DATA[formid][index]['RemoveListIndex'][labelIndex];\r\n        for (var i = indexstore?.LAST_INDEX; i-- > indexstore?.START_INDEX;) {\r\n          this.dynamicFormGroup[formid]?.controls[formGroupKey]?.removeAt(i)\r\n        }\r\n        await this.FIELDS_DATA[formid][index]['formGroup']?.splice(labelIndex, 1);\r\n        await this.FIELDS_DATA[formid][index]['GroupLabel']?.splice(labelIndex, 1)\r\n\r\n        for (let i = indexstore?.LAST_INDEX - 1; i >= indexstore?.START_INDEX; i--) {\r\n          this.FIELDS_DATA[formid][index]['NewformGroup']?.splice(i, 1);\r\n        }\r\n\r\n        for (let i = this.FIELDS_DATA[formid][index]['RemoveListIndex']?.length - 1; i >= labelIndex; i--) {\r\n          this.FIELDS_DATA[formid][index]['RemoveListIndex']?.splice(i, 1);\r\n        }\r\n\r\n        if (indexstore?.START_INDEX != MAX_LIMIT?.MAX_LIMIT) {\r\n          this.FIELDS_DATA[formid][index]['NewformGroup']?.forEach((element: any, index: any) => {\r\n            element['index'] = index;\r\n          });\r\n          this.FIELDS_DATA[formid][index]['GroupLabel']?.forEach((element: any, i: any) => {\r\n            let tempelement = this.FIELDS_DATA[formid][index]['GroupLabel'][0]?.replace('1', '');\r\n            this.FIELDS_DATA[formid][index]['GroupLabel'][i] = tempelement + ' ' + (i + 1);\r\n          });\r\n          this.removeIndexUpdate(this.FIELDS_DATA[formid][index]['RemoveListIndex'], MAX_LIMIT?.MAX_LIMIT);\r\n        }\r\n      }\r\n      await resolve('');\r\n    });\r\n  }\r\n\r\n  removeIndexUpdate(data: any, MAX_LIMIT: any) {\r\n    data?.forEach((element: any) => {\r\n      for (const key in element) {\r\n        if (element?.START_INDEX != MAX_LIMIT && element?.START_INDEX != -1) {\r\n          element[key] = element[key] - MAX_LIMIT\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  removeUpdateFormValue(data: any, MAX_LIMIT: any) {\r\n    data?.forEach((element: any) => {\r\n      for (const key in element) {\r\n        if (element?.START_INDEX != MAX_LIMIT && element?.START_INDEX != -1) {\r\n          element[key] = element[key] - MAX_LIMIT\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  setInputVisibilty(formid: any, index: any, key: any, value: any) {\r\n    this.FIELDS_DATA[formid][index][key] = value;\r\n  }\r\n}\r\n\r\nexport function hasDuplicateFormArray(data: any): ValidatorFn {\r\n  return (formArray: FormArray | any): { [key: string]: any } | null | any => {\r\n    if (formArray?.controls?.[data?.index]?.controls?.[data?.key]?.value != formArray?.controls?.[data?.equalindex]?.controls?.[data?.equalkey]?.value) {\r\n      formArray?.controls?.[data?.equalindex]?.controls?.[data?.equalkey]?.setErrors({ matched: data?.errormsg })\r\n      return null;\r\n    } else {\r\n      return null;\r\n    }\r\n  };\r\n}\r\n\r\nexport function hasAmountLessThanFormArray(control: FormControl): ValidationErrors | null {\r\n  const ALPHA_NUMERIC_REGEX = /^[a-zA-Z0-9_]*$/;\r\n  const ALPHA_NUMERIC_VALIDATION_ERROR = { alphaNumericError: 'only alpha numeric values are allowed' }\r\n  return ALPHA_NUMERIC_REGEX.test(control.value) ? null : ALPHA_NUMERIC_VALIDATION_ERROR;\r\n}\r\n\r\nexport function hasAmountLessThanForm(equals: string, Message: string) {\r\n  return (control: AbstractControl): ValidationErrors | null => {\r\n    const equalsField: any = control.root.get(equals)\r\n    if (equalsField) {\r\n      if (parseFloat(control.value) <= parseFloat(equalsField?.value)) {\r\n        return null;\r\n      } else {\r\n        return { matched: Message };\r\n      }\r\n    }\r\n    return null;\r\n  }\r\n}\r\n\r\nexport function hasAmountGreaterThanForm(equals: string, Message: string) {\r\n  return (control: AbstractControl): ValidationErrors | null => {\r\n    const equalsField: any = control.root.get(equals)\r\n    if (equalsField) {\r\n      if (parseFloat(control.value) >= parseFloat(equalsField?.value)) {\r\n        return null;\r\n      } else {\r\n        return { matched: Message };\r\n      }\r\n    }\r\n    return null;\r\n  }\r\n}\r\n\r\nexport function hasAmountGreaterThanFormArray(control: FormControl): ValidationErrors | null {\r\n  const ALPHA_NUMERIC_REGEX = /^[a-zA-Z0-9_]*$/;\r\n  const ALPHA_NUMERIC_VALIDATION_ERROR = { alphaNumericError: 'only alpha numeric values are allowed' }\r\n  return ALPHA_NUMERIC_REGEX.test(control.value) ? null : ALPHA_NUMERIC_VALIDATION_ERROR;\r\n}\r\n\r\nexport function RemoveValidator(): ValidatorFn {\r\n  return (formArray: FormArray | any): { [key: string]: any } | null | any => {\r\n    return null\r\n  };\r\n}\r\n\r\nexport function hasDuplicateControl(data: any, forms: any, id: any): ValidationErrors {\r\n  return (formArray: FormControl | any): { [key: string]: any } | null | any => {\r\n    if (forms[id] != undefined) {\r\n      if (forms[id]?.controls[data?.key] != undefined && forms[id]?.controls[data?.equalkey] != undefined) {\r\n        if (forms[id]?.controls[data?.key]?.value != forms[id]?.controls[data?.equalkey]?.value) {\r\n          return { matched: 'Password and Confirm Password must be match.' };\r\n        } else {\r\n          return null;\r\n        }\r\n      } else {\r\n        return null;\r\n      }\r\n    } else {\r\n      return null;\r\n    }\r\n  };\r\n}\r\n\r\n\r\nexport function alphaNumericValidator(control: FormControl): ValidationErrors | null {\r\n  const ALPHA_NUMERIC_REGEX = /^[a-zA-Z0-9_]*$/;\r\n  const ALPHA_NUMERIC_VALIDATION_ERROR = { alphaNumericError: 'only alpha numeric values are allowed' }\r\n  return ALPHA_NUMERIC_REGEX.test(control.value) ? null : ALPHA_NUMERIC_VALIDATION_ERROR;\r\n}\r\n\r\nexport function alphaValidator(control: FormControl): ValidationErrors | null {\r\n  const ALPHA_REGEX = /^[a-zA-Z_]*$/;\r\n  const ALPHA_VALIDATION_ERROR = { alphaError: 'only alphabets values are allowed' }\r\n  return ALPHA_REGEX.test(control.value) ? null : ALPHA_VALIDATION_ERROR;\r\n}\r\n\r\nexport function EmailValidator(control: FormControl): ValidationErrors | null {\r\n  const EMAIL_REGEX = /^[a-z0-9._%+-]+@[a-z0-9.-]+\\\\.[a-z]{2,4}$/;\r\n  const EMAIL_VALIDATION_ERROR = { emailError: 'Please insert/enter a valid email address.' }\r\n  return EMAIL_REGEX.test(control.value) ? null : EMAIL_VALIDATION_ERROR;\r\n}\r\n\r\nexport function PasswordValidator(control: FormControl): ValidationErrors | null {\r\n  const EMAIL_REGEX = /^[a-z0-9._%+-]+@[a-z0-9.-]+\\\\.[a-z]{2,4}$/;\r\n  const EMAIL_VALIDATION_ERROR = { emailError: 'Please insert/enter a valid email address.' }\r\n  return EMAIL_REGEX.test(control.value) ? null : EMAIL_VALIDATION_ERROR;\r\n}\r\n\r\nexport function ConfirmedValidator(controlName: string, matchingControlName: string) {\r\n  return (formGroup: FormGroup) => {\r\n    const control = formGroup.controls[controlName];\r\n    const matchingControl: any = formGroup.controls[matchingControlName];\r\n    if (matchingControl?.errors && !matchingControl?.errors?.confirmedValidator) {\r\n      return;\r\n    }\r\n    if (control.value !== matchingControl.value) {\r\n      matchingControl.setErrors({ confirmedValidator: 'Password and Confirm Password must be match.' });\r\n    } else {\r\n      matchingControl.setErrors(null);\r\n    }\r\n  }\r\n}\r\n\r\n// PasswordStrengthValidator\r\nexport const PasswordStrengthValidator = function (control: AbstractControl): ValidationErrors | null {\r\n  let value: string = control.value || '';\r\n  if (!value) {\r\n    return null\r\n  }\r\n  let upperCaseCharacters = /[A-Z]+/g\r\n  if (upperCaseCharacters.test(value) === false) {\r\n    return { passwordStrength: `text has to contine Upper case characters,current value ${value}` };\r\n  }\r\n  let lowerCaseCharacters = /[a-z]+/g\r\n  if (lowerCaseCharacters.test(value) === false) {\r\n    return { passwordStrength: `text has to contine lower case characters,current value ${value}` };\r\n  }\r\n  let numberCharacters = /[0-9]+/g\r\n  if (numberCharacters.test(value) === false) {\r\n    return { passwordStrength: `text has to contine number characters,current value ${value}` };\r\n  }\r\n  let specialCharacters = /[!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]+/\r\n  if (specialCharacters.test(value) === false) {\r\n    return { passwordStrength: `text has to contine special character,current value ${value}` };\r\n  }\r\n  return null;\r\n}","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n@Component({\r\n  selector: 'inner-dynamic-error',\r\n  templateUrl: './inner-dynamic-error.component.html',\r\n  styleUrls: ['./inner-dynamic-error.component.scss']\r\n})\r\nexport class InnerDynamicErrorComponent implements OnInit {\r\n  @Input() formName?: FormGroup | any;\r\n  @Input() fieldName: any;\r\n  @Input('SUBMIT_ERROR') SUBMIT_ERROR: boolean = false;\r\n  @Input('ErrorMessage') ErrorMessage: string = '';\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  get getMessage() {\r\n    return this.ErrorMessage ?? this.fieldName + ` should contain ${this.formName?.controls[this.fieldName]?.errors?.['minlength']?.requiredLength} digits only`\r\n  }\r\n\r\n  get getNormalMessage() {\r\n    return this.ErrorMessage ?? ` Please enter the details.`\r\n  }\r\n\r\n}\r\n","<div *ngIf=\"formName?.controls[fieldName]?.invalid && (formName?.controls[fieldName]?.dirty || formName?.controls[fieldName]?.touched || this.SUBMIT_ERROR==true)\"\r\n    class=\"alert alert-danger\">\r\n    <p *ngIf=\"formName?.controls[fieldName]?.errors?.['required']\">\r\n        {{getNormalMessage}}\r\n    </p>\r\n    <p *ngIf=\"formName?.controls[fieldName]?.errors?.['errorMessageStatus']==true\">\r\n        {{formName?.controls[fieldName]?.errors?.['errorMessage']}}\r\n    </p>\r\n    <p *ngIf=\"formName?.controls[fieldName]?.errors?.['matched']!=undefined\">\r\n        {{formName?.controls[fieldName]?.errors?.['matched']}}\r\n    </p>\r\n    <p *ngIf=\"formName?.controls[fieldName]?.errors?.['alphaNumericError']!=undefined\">\r\n        {{formName?.controls[fieldName]?.errors?.['alphaNumericError']}}\r\n    </p>\r\n    <p *ngIf=\"formName?.controls[fieldName]?.errors?.['alphaError']!=undefined\">\r\n        {{formName?.controls[fieldName]?.errors?.['alphaError']}}\r\n    </p>\r\n    <p *ngIf=\"formName?.controls[fieldName]?.errors?.['emailError']!=undefined\">\r\n        {{formName?.controls[fieldName]?.errors?.['emailError']}}\r\n    </p>\r\n    <p *ngIf=\"formName?.controls[fieldName]?.errors?.['minlength']\">\r\n        {{getMessage}}\r\n    </p>\r\n    <p *ngIf=\"formName?.controls[fieldName]?.errors?.['maxlength']\">\r\n        {{fieldName}} should contain {{formName?.controls[fieldName]?.errors?.['maxlength']?.requiredLength}} digits only.\r\n    </p>\r\n    <p *ngIf=\"formName?.controls[fieldName]?.errors?.['forbiddenName']\">\r\n        {{fieldName}} cannot be Bob.\r\n    </p>\r\n</div>","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { FormGroup, Validators } from '@angular/forms';\r\nimport { ReactiveJsonFormsService } from '../service/upload-service-validator.service';\r\nimport $ from 'jquery';\r\n\r\n@Component({\r\n  selector: 'upload-components',\r\n  templateUrl: './upload-components.component.html',\r\n  styleUrls: ['./upload-components.component.scss'],\r\n})\r\nexport class UploadComponentsComponent implements OnInit, AfterViewInit, OnDestroy {\r\n  SUBMIT_ERROR: boolean = false;\r\n  @Input('label') label: any = '';\r\n  @Input('labelStyle') labelStyle: any = '';\r\n  @Input('FormStyle') FormStyle: any = '';\r\n  @Input('MainStyle') MainStyle: any = '';\r\n  @Input('DetailsShow') DetailsShow: boolean = true;\r\n  @Input('id') id: any = '';\r\n  @Input('SubmitButtonStyle') SubmitButtonStyle: any = '';\r\n  @Input('ButtonPanelStyle') ButtonPanelStyle: any = '';\r\n  @Input('CancelRoute') CancelRoute: any = '';\r\n  @Input('TypeOfValue') TypeOfValue: any = 'Normal';\r\n  @Input('SubmitName') SubmitName: any = 'Submit';\r\n  @Input('AddNewRequried') AddNewRequried: boolean = false;\r\n  @Output('OnSubmitEvent') OnSubmitEvent: EventEmitter<any> = new EventEmitter();\r\n  @Output('AddNewBank') AddNewBank: EventEmitter<any> = new EventEmitter();\r\n  @Output('RawValueEvent') RawValue: EventEmitter<any> = new EventEmitter();\r\n  @Output('BankEvent') BankEvent: EventEmitter<any> = new EventEmitter();\r\n  @Output('SelectionBank') SelectionBank: EventEmitter<any> = new EventEmitter();\r\n  @Output('YesNoCheckBoxEvent') YesNoCheckBoxEvent: EventEmitter<any> = new EventEmitter();\r\n  @Output('SHIPPING_BILL_EVENT') SHIPPING_BILL_EVENT: EventEmitter<any> = new EventEmitter();\r\n  @Output('CommericalNoEvent') CommericalNoEvent: EventEmitter<any> = new EventEmitter();\r\n  @Output('AddButton') AddButton: EventEmitter<any> = new EventEmitter();\r\n  @Output('BL_COPY_EVENT') BL_COPY_EVENT: EventEmitter<any> = new EventEmitter();\r\n  @Output('BENEFICIARY_EVENT') BENEFICIARY_EVENT: EventEmitter<any> = new EventEmitter();\r\n  @Output('BUYER_BENEE_EVENT') BUYER_BENEE_EVENT: EventEmitter<any> = new EventEmitter();\r\n  @Output('PIPO_EVENT') PIPO_EVENT: EventEmitter<any> = new EventEmitter();\r\n  @Input('HIDE_BACKGROUND') HIDE_BACKGROUND: boolean = true;\r\n  @Input('HIDE_SUBMIT_BUTTON') HIDE_SUBMIT_BUTTON: boolean = true;\r\n  @Input('KEY_ENTER_ENABLED') KEY_ENTER_ENABLED: any = false;\r\n  @Input('ADD_NEW_BUTTON_VISIBLE') ADD_NEW_BUTTON_VISIBLE: boolean = false;\r\n  @ViewChild('BuyerNotFoundPanel') BuyerNotFound: ElementRef | any;\r\n  @ViewChild('BeneficiaryNotFoundPanel') BeneficiaryNotFound: ElementRef | any\r\n  @Input('morecontent') morecontent: boolean = false;\r\n  @Input('BUTTON_PANEL_SHOW') BUTTON_PANEL_SHOW: boolean = false;\r\n  @Input('BUTTON_PANEL_HIDE') BUTTON_PANEL_HIDE: boolean = true;\r\n  @Input('SubmitButtonDisabled') SubmitButtonDisabled: boolean = false;\r\n  @Input('ResetForm') ResetForm: boolean = true;\r\n  @Output('DropDownEvent') DropDownEvent: EventEmitter<any> = new EventEmitter();\r\n  @Output('ArrayList_ObjectEvent') ArrayList_ObjectEvent: EventEmitter<any> = new EventEmitter();\r\n  @Output('FormValueChanges') FormValueChanges: EventEmitter<any> = new EventEmitter();\r\n  @Output('CancelEvent') CancelEvent: EventEmitter<any> = new EventEmitter();\r\n  @Input('ErrorMessageData') ErrorMessageData!: { status: boolean, text: string };\r\n\r\n  Account_Type: any = [{\r\n    type: 'OD-over draft'\r\n  }, {\r\n    type: 'CC-cash credit'\r\n  }, {\r\n    type: 'CA-Current account'\r\n  }, {\r\n    type: 'EEFC - Exchange earner Foreign currency'\r\n  }, {\r\n    type: 'PCFC- packing credit Foreign currency'\r\n  }, {\r\n    type: 'EBRD- Bill discounting account'\r\n  }];\r\n  LOGIN_TOEKN: any = '';\r\n  POPUP_VISIBLILTY: any = {\r\n    BuyerNotFound: '',\r\n    BeneficiaryNotFound: ''\r\n  }\r\n  HS_CODE_DATA: any = [];\r\n  NEW_STATIC_PURPOSE_CODE_LIST: any = [];\r\n  NEW_PURPOSE_CODE_LIST: any = [];\r\n  PAGINATE_DATA: any = [];\r\n  PAGINATOR_DATA: any = [];\r\n  PURPOSE_CODE_DROPDOWN_DATA: Array<any> = [];\r\n  PURPOSE_GROUP_NAME_DROPDOWN_DATA: Array<any> = [];\r\n  constructor(public sanitizer: DomSanitizer, public validator: ReactiveJsonFormsService) { }\r\n  ngOnInit() { }\r\n\r\n  paginate(items: any, page = 1, perPage = 10) {\r\n    const offset = perPage * (page - 1);\r\n    const totalPages = Math.ceil(items.length / perPage);\r\n    const paginatedItems = items.slice(offset, perPage * page);\r\n    return {\r\n      previousPage: page - 1 ? page - 1 : null,\r\n      nextPage: (totalPages > page) ? page + 1 : null,\r\n      total: items.length,\r\n      totalPages: totalPages,\r\n      items: paginatedItems\r\n    };\r\n  };\r\n\r\n  PAGINATION_EVENT(event: any) {\r\n    let START_INDEX: number = (10 * event?.pageIndex);\r\n    let END_INDEX: number = START_INDEX + 10;\r\n    this.FILTER_HS_CODE_DATA = []\r\n    for (let index = START_INDEX; index < END_INDEX; index++) {\r\n      this.FILTER_HS_CODE_DATA.push(this.HS_CODE_DATA[index])\r\n    }\r\n  }\r\n\r\n  get onClickButton() {\r\n    $('.submit-button#' + this.id).click()\r\n    return \"\";\r\n  }\r\n\r\n  get resetForm() {\r\n    this.validator.FIELDS_DATA[this.id]?.forEach((element: any) => {\r\n      element['value'] = '';\r\n      this.validator.dynamicFormGroup[this.id]?.controls[element?.fieldName]?.setValue(\"\");\r\n    });\r\n    return this.validator.dynamicFormGroup[this.id]?.reset();\r\n  }\r\n\r\n  onSubmit(event: any, e: any, type: any = '') {\r\n    console.log(e, \"OnSubmitEvent\")\r\n    event.preventDefault();\r\n    if (e?.status == 'VALID') {\r\n      this.OnSubmitEvent.emit(e);\r\n      this.SUBMIT_ERROR = false;\r\n    } else {\r\n      this.RawValue.emit(false);\r\n      this.SUBMIT_ERROR = true;\r\n    }\r\n  }\r\n\r\n  get getRawValue() {\r\n    return this.validator.dynamicFormGroup[this.id]?.getRawValue()\r\n  }\r\n\r\n  dumpFunc(value: any, callback: any) {\r\n    if (callback != undefined) {\r\n      callback(value)\r\n    }\r\n  }\r\n\r\n  get geForm() {\r\n    return this.validator.dynamicFormGroup[this.id];\r\n  }\r\n\r\n  setFormValue(value: any, index: any, name1: any, name2: any) {\r\n    if (typeof value == \"object\") {\r\n      let sumofstring = \"\"\r\n      for (const key in value) {\r\n        const element = value[key];\r\n        sumofstring += element + ','\r\n      }\r\n      this.validator.dynamicFormGroup[this.id]?.controls[name1]?.controls[index]?.controls[name2]?.setValue(sumofstring)\r\n    } else {\r\n      this.validator.dynamicFormGroup[this.id]?.controls[name1]?.controls[index]?.controls[name2]?.setValue(value)\r\n    }\r\n  }\r\n\r\n  setValue(value: any, name1: any) {\r\n    if (name1 != null && name1 != undefined && name1 != '') {\r\n      this.validator.dynamicFormGroup[this.id]?.controls[name1]?.setValue(value)\r\n      this.validator.dynamicFormGroup[this.id].value[name1] = (value)\r\n      this.validator.dynamicFormGroup[this.id].controls[name1]['touched'] = true;\r\n    }\r\n  }\r\n\r\n  addFormArray(key1: any, index: any, data: any, GroupLabel: any) {\r\n    this.validator.buildNewFormArray(key1, index, data['formGroup'][0], this.id, GroupLabel, data).then((res: any) => {\r\n      res?.forEach((element: any) => {\r\n        this.validator.dynamicFormGroup[this.id]?.controls[key1].push(element)\r\n      });\r\n    })\r\n  }\r\n\r\n  removeFormArray(key1: any, index: any, labelIndex: any, data: any, data2: any = {}) {\r\n    this.validator.removeFormArray(key1, index, labelIndex, this.id, data).then((res: any) => { })\r\n  }\r\n\r\n  AUTOFILL_INPUT_NAME_LIST: any = [];\r\n  ORM_SELECTION(event: any, index: any, data: any, AUTOFILL_INPUT_NAME_LIST: any, type: any = 'Normal') {\r\n    if (event.target.checked) {\r\n      this.validator.ORM_SELECTION_DATA.push(data);\r\n      if (type == \"Normal\") {\r\n        AUTOFILL_INPUT_NAME_LIST.forEach((element: any) => {\r\n          this.validator.dynamicFormGroup[this.id]?.controls[element?.input]?.setValue(this.validator.ORM_SELECTION_DATA[element?.key]);\r\n        });\r\n        if (this.CALLBACK != undefined && this.CALLBACK != null && this.CALLBACK != '') {\r\n          this.CALLBACK({ form: this.validator.dynamicFormGroup[this.id], AUTOFILL_INPUT_NAME_LIST: AUTOFILL_INPUT_NAME_LIST, FIELDS_DATA: this.field })\r\n        }\r\n      } else if (type == \"formGroup\") {\r\n        AUTOFILL_INPUT_NAME_LIST.forEach((element: any) => {\r\n          this.validator.dynamicFormGroup[this.id]?.controls[element?.parent]?.controls[0]?.controls[element?.input]?.setValue(this.validator.ORM_SELECTION_DATA[element?.key]);\r\n        });\r\n      }\r\n      if (this.CALLBACK != undefined && this.CALLBACK != null && this.CALLBACK != '') {\r\n        this.CALLBACK({ form: this.validator.dynamicFormGroup[this.id], AUTOFILL_INPUT_NAME_LIST: AUTOFILL_INPUT_NAME_LIST, FIELDS_DATA: this.field })\r\n      }\r\n    } else {\r\n      this.validator.ORM_SELECTION_DATA.splice(index, 1)\r\n      event.target.checked = false;\r\n    }\r\n  }\r\n\r\n  CALLBACK: any = null;\r\n  field: any = null;\r\n  dump(data: any, callback: any = null, field: any = null) {\r\n    this.AUTOFILL_INPUT_NAME_LIST = data;\r\n    this.CALLBACK = callback;\r\n    this.field = field;\r\n  }\r\n\r\n  autofillCommerical(Commericaldata: any, AUTOFILL_INPUT_NAME_LIST: any) {\r\n    AUTOFILL_INPUT_NAME_LIST.forEach((element: any) => {\r\n      this.validator.dynamicFormGroup[this.id]?.controls[element?.name]?.controls[element?.index]?.controls[element?.input]?.setValue(Commericaldata?.data[element?.key])\r\n    });\r\n  }\r\n\r\n  CreateFormBank() {\r\n    setTimeout(() => {\r\n      this.validator.buildForm({\r\n        BankName: {\r\n          type: \"text\",\r\n          value: \"\",\r\n          label: \"Bank Name\",\r\n          placeholderText: 'Bank Name',\r\n          rules: {\r\n            required: true,\r\n          },\r\n          maxLength: 200\r\n        },\r\n      }, 'AddNewBankName');\r\n    }, 200);\r\n  }\r\n\r\n  addNewBank(e: any, panel: any) {\r\n\r\n  }\r\n\r\n  onAddNewBank() {\r\n    this.AddNewBank.emit(true);\r\n  }\r\n\r\n  initialName(words: any) {\r\n    'use strict'\r\n    return words\r\n      .replace(/\\b(\\w)\\w+/g, '$1_')\r\n      .replace(/\\s/g, '')\r\n      .replace(/\\.$/, '')\r\n      .toUpperCase();\r\n  }\r\n\r\n  removeAllSpecialChar(string: any) {\r\n    return string?.replace(/[^a-zA-Z ]/g, \"\");\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n\r\n  }\r\n\r\n  callbackFunction(value: any, callback: any = undefined) {\r\n    if (callback != undefined) {\r\n      callback(value)\r\n    }\r\n  }\r\n\r\n  toggleRequiredValidator(condition: boolean, id: any) {\r\n    const emailControl = this.validator.dynamicFormGroup[this.validator.HSCODE_FEILD_FORM?.id].get(this.validator.HSCODE_FEILD_FORM?.fieldName).get('email');\r\n    if (emailControl) {\r\n      if (condition) {\r\n        emailControl.setValidators([Validators.required]);\r\n      } else {\r\n        emailControl.clearValidators();\r\n      }\r\n      emailControl.updateValueAndValidity();\r\n    }\r\n  }\r\n\r\n\r\n  ValueAdd(id: any, form: any, fieldName: any, OptionfieldIndex: any, FormOptionfieldName: any, value: any, callback: any = undefined, field: any = undefined) {\r\n    this.validator.HSCODE_FEILD_FORM[\"id\"] = id;\r\n    this.validator.HSCODE_FEILD_FORM[\"form\"] = form;\r\n    this.validator.HSCODE_FEILD_FORM[\"fieldName\"] = fieldName;\r\n    this.validator.HSCODE_FEILD_FORM[\"OptionfieldIndex\"] = OptionfieldIndex;\r\n    this.validator.HSCODE_FEILD_FORM[\"FormOptionfieldName\"] = FormOptionfieldName;\r\n    this.validator.HSCODE_FEILD_FORM[\"callback\"] = callback;\r\n    this.validator.HSCODE_FEILD_FORM[\"field\"] = field;\r\n    this.validator.HSCODE_FEILD_FORM[\"value\"] = value;\r\n    this.validator.HSCODE_FEILD_FORM[\"NewId\"] = FormOptionfieldName + '_' + OptionfieldIndex;\r\n    if (this.validator.HSCODE_FEILD_FORM?.FormOptionfieldName != undefined && this.validator.HSCODE_FEILD_FORM?.FormOptionfieldName != null) {\r\n      this.ALL_DATA_HSCODE[this.validator.HSCODE_FEILD_FORM?.NewId] = [];\r\n    } else {\r\n      this.ALL_DATA_HSCODE[fieldName] = []\r\n    }\r\n  }\r\n\r\n  ToHSCode_Selected: any = [];\r\n  ToHSCode(event: any, value: any, index: any) {\r\n    if (this.validator.HSCODE_FEILD_FORM?.FormOptionfieldName != undefined && this.validator.HSCODE_FEILD_FORM?.FormOptionfieldName != null) {\r\n      if (this.ToHSCode_Selected[this.validator.HSCODE_FEILD_FORM?.NewId] == undefined) {\r\n        this.ToHSCode_Selected[this.validator.HSCODE_FEILD_FORM?.NewId] = []\r\n      }\r\n      if (event?.target?.checked == true) {\r\n        this.ToHSCode_Selected[this.validator.HSCODE_FEILD_FORM?.NewId][index] = value;\r\n      } else {\r\n        this.ToHSCode_Selected[this.validator.HSCODE_FEILD_FORM?.NewId][index] = '';\r\n      }\r\n    } else {\r\n      if (this.ToHSCode_Selected[this.validator.HSCODE_FEILD_FORM.fieldName] == undefined) {\r\n        this.ToHSCode_Selected[this.validator.HSCODE_FEILD_FORM.fieldName] = []\r\n      }\r\n      if (event?.target?.checked == true) {\r\n        this.ToHSCode_Selected[this.validator.HSCODE_FEILD_FORM.fieldName][index] = value;\r\n      } else {\r\n        this.ToHSCode_Selected[this.validator.HSCODE_FEILD_FORM.fieldName][index] = '';\r\n      }\r\n    }\r\n  }\r\n\r\n  ALL_DATA_HSCODE: any = {};\r\n  DoneButton() {\r\n    let temp2: any = [];\r\n    let NEW_HS_CODE: any = [];\r\n    if (this.validator.HSCODE_FEILD_FORM?.FormOptionfieldName != undefined && this.validator.HSCODE_FEILD_FORM?.FormOptionfieldName != null) {\r\n      this.ToHSCode_Selected[this.validator.HSCODE_FEILD_FORM?.NewId]?.forEach((element: any) => {\r\n        temp2.push(element?.hscode);\r\n        NEW_HS_CODE.push(element)\r\n      });\r\n      this.ALL_DATA_HSCODE[this.validator.HSCODE_FEILD_FORM?.NewId] = temp2.join(',');\r\n      const myForm: any = this.validator.HSCODE_FEILD_FORM?.form?.controls[this.validator.HSCODE_FEILD_FORM.fieldName] as FormGroup;\r\n      let currentVal = this.ALL_DATA_HSCODE[this.validator.HSCODE_FEILD_FORM?.NewId];\r\n      myForm.value[this.validator.HSCODE_FEILD_FORM?.OptionfieldIndex][this.validator.HSCODE_FEILD_FORM.FormOptionfieldName] = currentVal;\r\n      myForm?.controls[this.validator.HSCODE_FEILD_FORM?.OptionfieldIndex]?.controls[this.validator.HSCODE_FEILD_FORM.FormOptionfieldName]?.setValue(currentVal);\r\n      myForm['touched'] = true;\r\n      myForm['status'] = 'VALID';\r\n      this.validator.dynamicFormGroup[this.validator.HSCODE_FEILD_FORM?.id].get(this.validator.HSCODE_FEILD_FORM?.fieldName).clearValidators();\r\n      this.validator.dynamicFormGroup[this.validator.HSCODE_FEILD_FORM?.id].get(this.validator.HSCODE_FEILD_FORM?.fieldName).updateValueAndValidity();\r\n      if (this.validator.HSCODE_FEILD_FORM?.callback != undefined && this.validator.HSCODE_FEILD_FORM?.callback != null) {\r\n        this.validator.HSCODE_FEILD_FORM.callback({\r\n          id: this.validator.HSCODE_FEILD_FORM.id,\r\n          form: this.validator.HSCODE_FEILD_FORM.form, fieldName: this.validator.HSCODE_FEILD_FORM.fieldName,\r\n          OptionfieldIndex: this.validator.HSCODE_FEILD_FORM.OptionfieldIndex,\r\n          FormOptionfieldName: this.validator.HSCODE_FEILD_FORM.FormOptionfieldName,\r\n          value: this.validator.HSCODE_FEILD_FORM.value,\r\n          dynamicFormGroup: this.validator.dynamicFormGroup[this.validator.HSCODE_FEILD_FORM.id],\r\n          field: this.validator.FIELDS_DATA[this.validator.HSCODE_FEILD_FORM.id],\r\n          SELECTED_ITEMS: NEW_HS_CODE\r\n        });\r\n      }\r\n    } else {\r\n      this.ToHSCode_Selected[this.validator.HSCODE_FEILD_FORM.fieldName]?.forEach((element: any) => {\r\n        temp2.push(element?.hscode);\r\n        NEW_HS_CODE.push(element)\r\n      });\r\n      this.ALL_DATA_HSCODE[this.validator.HSCODE_FEILD_FORM.fieldName] = temp2.join(',');\r\n      const myForm: any = this.validator.HSCODE_FEILD_FORM?.form;\r\n      let currentVal = this.ALL_DATA_HSCODE[this.validator.HSCODE_FEILD_FORM.fieldName];\r\n      myForm.value[this.validator.HSCODE_FEILD_FORM.fieldName] = currentVal;\r\n      myForm?.controls[this.validator.HSCODE_FEILD_FORM.fieldName]?.setValue(currentVal);\r\n      myForm['touched'] = true;\r\n      myForm['status'] = 'VALID';\r\n      if (this.validator.HSCODE_FEILD_FORM?.callback != undefined && this.validator.HSCODE_FEILD_FORM?.callback != null) {\r\n        this.validator.HSCODE_FEILD_FORM.callback({\r\n          id: this.validator.HSCODE_FEILD_FORM.id, form: this.validator.HSCODE_FEILD_FORM.form,\r\n          fieldName: this.validator.HSCODE_FEILD_FORM.fieldName, OptionfieldIndex: this.validator.HSCODE_FEILD_FORM.OptionfieldIndex,\r\n          FormOptionfieldName: this.validator.HSCODE_FEILD_FORM.FormOptionfieldName, value: this.validator.HSCODE_FEILD_FORM.value,\r\n          dynamicFormGroup: this.validator.dynamicFormGroup[this.validator.HSCODE_FEILD_FORM.id],\r\n          field: this.validator.FIELDS_DATA[this.validator.HSCODE_FEILD_FORM.id],\r\n          SELECTED_ITEMS: NEW_HS_CODE\r\n        });\r\n      }\r\n    }\r\n  }\r\n\r\n  filtertimeout: any = ''\r\n  FILTER_HS_CODE_DATA: any = [];\r\n  filterHSCode(value: any) {\r\n    clearTimeout(this.filtertimeout);\r\n    this.filtertimeout = setTimeout(() => {\r\n      this.FILTER_HS_CODE_DATA = this.HS_CODE_DATA.filter((item: any) => item?.hscode?.indexOf(value) != -1 || item?.description?.toLowerCase()?.indexOf(value?.toLowerCase()) != -1);\r\n      if (this.FILTER_HS_CODE_DATA.length == 0) {\r\n        this.FILTER_HS_CODE_DATA = this.PAGINATE_DATA?.items;\r\n      }\r\n    }, 200);\r\n  }\r\n\r\n  PUPOSE_CODE_FEILD_FORM: any = {\r\n    id: \"\",\r\n    form: \"\",\r\n    fieldName: \"\",\r\n    OptionfieldIndex: \"\",\r\n    FormOptionfieldName: \"\",\r\n    value: \"\",\r\n    callback: \"\",\r\n    field: \"\",\r\n    NewId: \"\"\r\n  }\r\n\r\n  SELECT_PURPOSE_CODE(event: any, index: any) {\r\n\r\n    this.validator.SELECTED_PURPOSE_CODE_DUMP_SLEECTION[index] = { PurposeCode: event?.toString(), Description: this.validator.PURPOSE_CODE_FILTER_DATA[index]?.Value_greater_25000_equv[0] };\r\n    this.validator.SELECTED_PURPOSE_CODE_INDEX[index] = true;\r\n    this.validator.PURPOSE_CODE_FILTER_DATA?.forEach((element: any, i: any) => {\r\n      if (index == i) {\r\n        element['isActive'] = true;\r\n      }\r\n    });\r\n  }\r\n\r\n  PURPOSE_ValueAdd(id: any, field: any) {\r\n    this.PUPOSE_CODE_FEILD_FORM['id'] = id;\r\n    this.PUPOSE_CODE_FEILD_FORM['field'] = field;\r\n  }\r\n\r\n  PURPOSEDoneButton() {\r\n    let temp2: any = [];\r\n    this.NEW_PURPOSE_CODE_LIST?.forEach((element: any) => {\r\n      element[element?.keyName]?.forEach((keyNameelement: any) => {\r\n        if (keyNameelement?.checked == true) {\r\n          temp2.push(keyNameelement?.text);\r\n        }\r\n      });\r\n    });\r\n    this.validator.ALL_DATA_PURPOSE_CODE = temp2.join(',');\r\n    this.setValue(this.validator.ALL_DATA_PURPOSE_CODE, this.PUPOSE_CODE_FEILD_FORM?.field);\r\n  }\r\n\r\n  IMAGE_UPLOAD_LIST: any = [];\r\n  onUploadChanges(event: any, autofill: any) {\r\n    if (event.target.files.length > 0) {\r\n      event.target.files.forEach((element: any) => {\r\n        let fileReader = new FileReader();\r\n        fileReader.onload = (e) => {\r\n          this.IMAGE_UPLOAD_LIST.push({\r\n            name: element?.name,\r\n            buffer: fileReader.result\r\n          })\r\n        }\r\n        fileReader.readAsDataURL(element);\r\n      });\r\n      this.validator.dynamicFormGroup[this.id]?.controls[autofill?.key]?.setValue(this.IMAGE_UPLOAD_LIST);\r\n    }\r\n  }\r\n\r\n  removeImage(index: any, autofill: any) {\r\n    this.IMAGE_UPLOAD_LIST.splice(index, 1);\r\n    this.validator.dynamicFormGroup[this.id]?.controls[autofill?.key]?.setValue(this.IMAGE_UPLOAD_LIST);\r\n  }\r\n\r\n  HideShowInput(event: any, item: any, fieldIndex: any = -1, callback: any = undefined) {\r\n    if (item != undefined) {\r\n      if (item[event] != undefined) {\r\n        item[event]?.forEach((element: any) => {\r\n          const index = this.validator.FIELDS_DATA[this.id]?.findIndex((val: any) => val?.fieldName?.includes(element));\r\n          if (index != -1 && item[event] != undefined) {\r\n            this.validator.FIELDS_DATA[this.id][index]['disabled'] = true;\r\n            this.validator.dynamicFormGroup[this.id]?.controls[element]?.disable();\r\n          } else {\r\n            this.validator.FIELDS_DATA[this.id][index]['disabled'] = false;\r\n            this.validator.dynamicFormGroup[this.id]?.controls[element]?.enable();\r\n          }\r\n        });\r\n      } else {\r\n        for (const key in item) {\r\n          const element = item[key];\r\n          element.forEach((fieldNameelement: any) => {\r\n            const index = this.validator.FIELDS_DATA[this.id]?.findIndex((val: any) => val?.fieldName?.includes(fieldNameelement));\r\n            if (index != -1 && item[event] != undefined) {\r\n              this.validator.FIELDS_DATA[this.id][index]['disabled'] = true;\r\n              this.validator.dynamicFormGroup[this.id]?.controls[fieldNameelement]?.disable();\r\n            } else {\r\n              this.validator.FIELDS_DATA[this.id][index]['disabled'] = false;\r\n              this.validator.dynamicFormGroup[this.id]?.controls[fieldNameelement]?.enable();\r\n            }\r\n          });\r\n        }\r\n      }\r\n    }\r\n    if (callback != undefined) {\r\n      callback({\r\n        event: event,\r\n        id: this.id,\r\n        item: item,\r\n        dynamicFormGroup: this.validator.dynamicFormGroup[this.id],\r\n        field: this.validator.FIELDS_DATA[this.id],\r\n        FIELDS_DATA: this.validator.FIELDS_DATA\r\n      })\r\n    }\r\n  }\r\n\r\n  HideInputCheckBox(bool: any, item: any) {\r\n    if (item != undefined) {\r\n      item.forEach((element: any) => {\r\n        const index = this.validator.FIELDS_DATA[this.id]?.findIndex((val: any) => val?.fieldName?.includes(element?.name));\r\n        if (index != -1) {\r\n          if (element?.status == true) {\r\n            this.validator.FIELDS_DATA[this.id][index]['disabled'] = false;\r\n            this.validator.dynamicFormGroup[this.id]?.controls[element?.name]?.enable();\r\n          } else {\r\n            this.validator.FIELDS_DATA[this.id][index]['disabled'] = true;\r\n            this.validator.dynamicFormGroup[this.id]?.controls[element?.name]?.disable();\r\n          }\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  ShowInputCheckBox(bool: any, item: any) {\r\n    if (item != undefined) {\r\n      item.forEach((element: any) => {\r\n        const index = this.validator.FIELDS_DATA[this.id]?.findIndex((val: any) => val?.fieldName?.includes(element?.name));\r\n        if (index != -1) {\r\n          if (element?.status == true) {\r\n            this.validator.FIELDS_DATA[this.id][index]['disabled'] = false;\r\n            this.validator.dynamicFormGroup[this.id]?.controls[element?.name]?.enable();\r\n          } else {\r\n            this.validator.FIELDS_DATA[this.id][index]['disabled'] = true;\r\n            this.validator.dynamicFormGroup[this.id]?.controls[element?.name]?.disable();\r\n          }\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  onLabelNameChange(event: any, item: any, item2: any = '') {\r\n    if (item != undefined) {\r\n      if (item[event] != undefined) {\r\n        for (const key in item[event]) {\r\n          const element = item[event][key];\r\n          const index = this.validator.FIELDS_DATA[this.id]?.findIndex((val: any) => val?.fieldName?.includes(key));\r\n          if (index != -1) {\r\n            if (element['type'] = \"formGroup\") {\r\n              this.validator.FIELDS_DATA[this.id][index][\"NewformArray\"]?.forEach((NewformArrayelement: any) => {\r\n                let ObjectKEYS: any = Object.keys(NewformArrayelement);\r\n                const formGroupindex = ObjectKEYS?.findIndex((val: any) => val.includes(element?.name));\r\n                if (formGroupindex != -1) {\r\n                  NewformArrayelement[element?.name][\"label\"] = element?.labelChange\r\n                }\r\n              });\r\n            }\r\n          }\r\n        }\r\n      } else {\r\n        for (const key in item[\"default\"]) {\r\n          const element = item[\"default\"][key];\r\n          const index = this.validator.FIELDS_DATA[this.id]?.findIndex((val: any) => val?.fieldName?.includes(key));\r\n          if (index != -1) {\r\n            if (element['type'] = \"formGroup\") {\r\n              this.validator.FIELDS_DATA[this.id][index][\"NewformArray\"]?.forEach((NewformArrayelement: any) => {\r\n                let ObjectKEYS: any = Object.keys(NewformArrayelement);\r\n                const formGroupindex = ObjectKEYS?.findIndex((val: any) => val.includes(element?.name));\r\n                if (formGroupindex != -1) {\r\n                  NewformArrayelement[element?.name][\"label\"] = element?.labelChange\r\n                }\r\n              });\r\n            }\r\n          }\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  AutoFillCurrency(value: any, autofillitem: any) {\r\n    if (autofillitem != undefined && autofillitem != null && autofillitem != '') {\r\n      if (autofillitem?.type == \"formGroup\") {\r\n        this.validator.dynamicFormGroup[this.id]?.controls[autofillitem?.CONTROLS_NAME]?.controls?.forEach((element: any) => {\r\n          element?.controls[autofillitem?.SetInputName]?.setValue(value?.type);\r\n        });\r\n      } else {\r\n        this.validator.dynamicFormGroup[this.id]?.controls[autofillitem?.CONTROLS_NAME]?.controls?.setValue(value?.type);\r\n      }\r\n    }\r\n  }\r\n\r\n  onSHIPPING_BILL_EVENT(value: any) {\r\n    this.SHIPPING_BILL_EVENT.emit(value);\r\n  }\r\n\r\n  onBL_COPY_EVENT(value: any, fieldName: any, fieldIndex: any, callback: any = undefined) {\r\n    this.BL_COPY_EVENT.emit(value);\r\n    if (callback != undefined) {\r\n      callback({\r\n        form: this.validator.HSCODE_FEILD_FORM.form,\r\n        fieldName: fieldName,\r\n        index: fieldIndex,\r\n        value: value,\r\n        dynamicFormGroup: this.validator.dynamicFormGroup[this.id],\r\n        field: this.validator.FIELDS_DATA[fieldIndex],\r\n      })\r\n    }\r\n  }\r\n\r\n  CommericalListCheckBoxList: any = [];\r\n  onCommericalListCheckBox(event: any, fieldName: any, index: any, item: any, fieldIndex: any, callback: any = undefined) {\r\n    if (event?.checked == true) {\r\n      this.CommericalListCheckBoxList.push(item);\r\n    } else {\r\n      this.CommericalListCheckBoxList.splice(index, 1);\r\n    }\r\n    this.validator.dynamicFormGroup[this.id].controls[fieldName].setValue(this.CommericalListCheckBoxList);\r\n    if (callback != undefined) {\r\n      callback({\r\n        form: this.validator.HSCODE_FEILD_FORM.form,\r\n        fieldName: fieldName,\r\n        index: fieldIndex,\r\n        value: item,\r\n        dynamicFormGroup: this.validator.dynamicFormGroup[this.id],\r\n        field: this.validator.FIELDS_DATA[fieldIndex],\r\n      })\r\n    }\r\n  }\r\n\r\n  onBankCheckBox(event: any, fieldName: any, item: any, ItemChecked: any, CheckBoxCallBack: any = undefined) {\r\n    this.validator.CHECK_BOX_BANK_LIST.forEach((element: any) => {\r\n      element['checked'] = false;\r\n    });\r\n    if (event?.checked == true) {\r\n      ItemChecked['checked'] = true;\r\n    } else {\r\n      ItemChecked['checked'] = false;\r\n    }\r\n    this.BankEvent.emit(item);\r\n    this.validator.dynamicFormGroup[this.id].controls[fieldName].setValue(item);\r\n    if (CheckBoxCallBack != undefined) {\r\n      CheckBoxCallBack(item)\r\n    }\r\n  }\r\n\r\n  onChargerBankCheckBox(event: any, fieldName: any, item: any, ItemChecked: any, CheckBoxCallBack: any = undefined) {\r\n    this.validator.CHECK_BOX_BANK_LIST_CHARGES.forEach((element: any) => {\r\n      element['checked'] = false;\r\n    });\r\n    if (event?.checked == true) {\r\n      ItemChecked['checked'] = true;\r\n    } else {\r\n      ItemChecked['checked'] = false;\r\n    }\r\n    this.BankEvent.emit(item);\r\n    this.validator.dynamicFormGroup[this.id].controls[fieldName].setValue(item);\r\n    if (CheckBoxCallBack != undefined) {\r\n      CheckBoxCallBack(item)\r\n    }\r\n  }\r\n\r\n  onRemitterCheckBox(event: any, fieldName: any, item: any, ItemChecked: any) {\r\n    this.validator.CHECK_BOX_REMITTER_LIST?.forEach((element: any) => {\r\n      element['checked'] = false;\r\n    });\r\n    if (event?.checked == true) {\r\n      ItemChecked['checked'] = true;\r\n    } else {\r\n      ItemChecked['checked'] = false;\r\n    }\r\n    this.validator.dynamicFormGroup[this.id].controls[fieldName].setValue(item);\r\n\r\n  }\r\n\r\n  BANK_CHECKBOX(value: any, CHECK_BOX_BANK_LIST_CHARGES: any, EqualBankDetails: any = {}, errormsg: any = '', fieldName: any = '', dynamicFormGroup: any = undefined, callback: any = undefined) {\r\n    if (Object.keys(EqualBankDetails)?.length != 0) {\r\n      if (EqualBankDetails?.BankUniqueId == value?.BankUniqueId) {\r\n        this.validator.CHECK_BOX_BANK_LIST = this.validator?.bankDetail[value?.BankUniqueId];\r\n        this.validator.CHECK_BOX_BANK_LIST_CHARGES = []\r\n        if (CHECK_BOX_BANK_LIST_CHARGES == true) {\r\n          this.validator.CHECK_BOX_BANK_LIST_CHARGES = this.validator?.ToCreditAccountdata[value?.BankUniqueId];\r\n        }\r\n        this.validator.CHECK_BOX_BANK_LIST?.forEach((element: any) => {\r\n          element['checked'] = false;\r\n        });\r\n        this.validator.CHECK_BOX_BANK_LIST_CHARGES?.forEach((element: any) => {\r\n          element['checked'] = false;\r\n        });\r\n        if (callback != undefined) {\r\n          callback(value)\r\n        }\r\n        this.SelectionBank.emit(value)\r\n      } else {\r\n        this.validator.CHECK_BOX_BANK_LIST = [];\r\n        this.validator.CHECK_BOX_BANK_LIST_CHARGES = []\r\n        if (CHECK_BOX_BANK_LIST_CHARGES == true) {\r\n          this.validator.CHECK_BOX_BANK_LIST_CHARGES = [];\r\n        }\r\n        if (dynamicFormGroup != undefined) {\r\n          dynamicFormGroup?.controls[fieldName]?.reset();\r\n        }\r\n        if (callback != undefined) {\r\n          callback(value)\r\n        }\r\n        this.SelectionBank.emit(false)\r\n      }\r\n    } else {\r\n      this.validator.CHECK_BOX_BANK_LIST = this.validator?.bankDetail[value?.BankUniqueId];\r\n      this.validator.CHECK_BOX_BANK_LIST_CHARGES = []\r\n      if (CHECK_BOX_BANK_LIST_CHARGES == true) {\r\n        this.validator.CHECK_BOX_BANK_LIST_CHARGES = this.validator?.ToCreditAccountdata[value?.BankUniqueId];\r\n      }\r\n      this.validator.CHECK_BOX_BANK_LIST?.forEach((element: any) => {\r\n        element['checked'] = false;\r\n      });\r\n      this.validator.CHECK_BOX_BANK_LIST_CHARGES?.forEach((element: any) => {\r\n        element['checked'] = false;\r\n      });\r\n      if (callback != undefined) {\r\n        callback(value)\r\n      }\r\n      this.SelectionBank.emit(value)\r\n    }\r\n  }\r\n\r\n  REMITTER_CHECKBOX(value: any) {\r\n    this.validator.CHECK_BOX_REMITTER_LIST = this.validator?.REMITTER_LIST[value?.Remitter_Name];\r\n    this.validator.CHECK_BOX_REMITTER_LIST?.forEach((element: any) => {\r\n      element['checked'] = false;\r\n    });\r\n  }\r\n\r\n  YesNoFunction(value: any, name: any, callback: any) {\r\n    this.setValue(value, name)\r\n    this.YesNoCheckBoxEvent.emit(value);\r\n    if (callback != null && callback != undefined) {\r\n      callback(value);\r\n    }\r\n  }\r\n\r\n  AddAdditionalDocuments(form: any, name: any, index: any, fromitems: any) {\r\n    if (fromitems?.items != undefined && fromitems?.items?.length != 0) {\r\n      fromitems?.items.push(fromitems?.items[fromitems?.items?.length - 1] + 1)\r\n      form?.value[name]?.push()\r\n    }\r\n  }\r\n\r\n  removeAdditionalDocuments(form: any, name: any, index: any, fromitems: any) {\r\n    if (fromitems?.items != undefined && fromitems?.items?.length != 0) {\r\n      fromitems?.items?.splice(index, 1);\r\n      form?.value[name]?.splice(index, 1);\r\n    }\r\n  }\r\n\r\n  PushValueAdditionalDocuments(args: any, form: any, name: any, index: any, fromitems: any) {\r\n    if (fromitems?.items != undefined && fromitems?.items?.length != 0) {\r\n      form.value[name][index] = args[1].publicUrl\r\n    }\r\n  }\r\n\r\n  AdditionalDocumentsUrl: any = ''\r\n  ViewAdditionalDocuments(doc: any) {\r\n    this.AdditionalDocumentsUrl = ''\r\n    setTimeout(() => {\r\n      this.AdditionalDocumentsUrl = doc;\r\n    }, 200);\r\n  }\r\n\r\n  UploadedViewPdfUrl: any = ''\r\n  UploadedViewPdf(pdf: any) {\r\n    this.UploadedViewPdfUrl = '';\r\n    setTimeout(() => {\r\n      this.UploadedViewPdfUrl = pdf;\r\n    }, 200);\r\n  }\r\n\r\n  @Output('LETTER_HEADE_URL') LETTER_HEADE_URL: any = new EventEmitter();\r\n  onFileSelect(input: any, urladd: any) {\r\n    if (input.files && input.files[0]) {\r\n      var reader = new FileReader();\r\n      reader.onload = async (e: any) => {\r\n        let data = e.target.result.substr(e.target.result.indexOf(',') + 1)\r\n      }\r\n      reader.readAsDataURL(input.files[0]);\r\n    }\r\n  }\r\n\r\n  CancelRouterNavigate(url: any) {\r\n    this.CancelEvent.emit({ status: true })\r\n    if (url != undefined && url != \"\" && url != null) {\r\n      // this.router.navigate([url])\r\n      window.location.href = url\r\n    }\r\n  }\r\n\r\n  callbuyerbene(event: any) {\r\n    setTimeout(() => {\r\n      this.BUYER_BENEE_EVENT?.emit(event)\r\n    }, 200);\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.ResetForm == true) {\r\n      this.validator.dynamicFormGroup[this.id]?.reset();\r\n      this.validator.CHECK_BOX_BANK_LIST = []\r\n      this.validator.CHECK_BOX_BANK_LIST_CHARGES = [];\r\n    }\r\n  }\r\n\r\n  UploadDocumentResponse(args: any, id: any, parentcontrols: any, index: any, childcontrols: any) {\r\n    this.validator.dynamicFormGroup[id].controls[parentcontrols].value[index] = {\r\n      [childcontrols]: args[1]\r\n    }\r\n    this.validator.dynamicFormGroup[id]?.controls[parentcontrols]?.controls[index]?.controls[childcontrols]?.setValue(args[1]);\r\n  }\r\n\r\n  onChangeMatCheckBox(id: any, parentcontrols: any, key: any, selectedOption: any) {\r\n    const controlValue = this.validator.dynamicFormGroup[id]?.controls[parentcontrols]?.value;\r\n    this.validator.dynamicFormGroup[id]?.controls[parentcontrols]?.setValue({\r\n      ...controlValue,\r\n      [key]: selectedOption?.checked\r\n    });\r\n  }\r\n\r\n  callbackfill(fieldName: any, fieldIndex: any, item: any, callback: any) {\r\n    if (callback != undefined) {\r\n      callback({\r\n        form: this.validator.HSCODE_FEILD_FORM.form,\r\n        fieldName: fieldName,\r\n        index: fieldIndex,\r\n        value: item,\r\n        dynamicFormGroup: this.validator.dynamicFormGroup[this.id],\r\n        field: this.validator.FIELDS_DATA[this.id],\r\n      })\r\n    }\r\n  }\r\n\r\n  filterGroupNameData(event: any) {\r\n    console.log(event, \"filterGroupNameData\")\r\n    if (event == undefined) {\r\n      this.NEW_PURPOSE_CODE_LIST = this.NEW_STATIC_PURPOSE_CODE_LIST;\r\n      return;\r\n    }\r\n    this.NEW_PURPOSE_CODE_LIST = this.NEW_STATIC_PURPOSE_CODE_LIST?.filter((item: any) => item?.keyName == event);\r\n  }\r\n\r\n  filterPurposeCodeData(event: any) {\r\n    console.log(event, \"filterPurposeCodeData\")\r\n    if (event == undefined) {\r\n      this.NEW_PURPOSE_CODE_LIST = this.NEW_STATIC_PURPOSE_CODE_LIST;\r\n      return;\r\n    }\r\n    this.NEW_PURPOSE_CODE_LIST = this.NEW_STATIC_PURPOSE_CODE_LIST.filter((item1: any) => item1[item1.keyName]?.some((item2: any) => item2.text === event));\r\n  }\r\n}","<div class=\"form-container-fluid\" [style]=\"MainStyle\" *ngIf=\"this.validator.dynamicFormGroup!=undefined && this.validator.dynamicFormGroup[this.id]!=undefined\"\r\n    [hidden]=\"this.validator.dynamicFormGroup[this.id]!=undefined?false:true\">\r\n    <div class=\"form-group mb-0 ErrorMessageData\" *ngIf=\"this.ErrorMessageData?.status==true\">\r\n        <label>{{this.ErrorMessageData?.text}}</label>\r\n    </div>\r\n    <ng-content *ngIf=\"morecontent==true\" select=\"more-content\"></ng-content>\r\n    <form class=\"col-12\" *ngIf=\"this.validator.dynamicFormGroup!=undefined && this.validator.dynamicFormGroup[this.id]!=undefined\" [formGroup]=\"this.validator.dynamicFormGroup[this.id]\" onsubmit=\"return false;\"\r\n        [ngClass]=\"{'division-panel':this.HIDE_BACKGROUND==true}\" [style]=\"this.FormStyle\"\r\n        (keyup.enter)=\"this.KEY_ENTER_ENABLED==true?onSubmit($event,this.validator.dynamicFormGroup[this.id]):''\"\r\n        autocomplete=\"disabled\" autocomplete=\"off\">\r\n        <label *ngIf=\"label!=undefined && label!=''\" class=\"Details-form-label\"\r\n            [style]=\"labelStyle\">{{this.label}}</label>\r\n        <div class=\"col-12 p-1\" [ngClass]=\"{'hidden':field?.disabled==true}\"\r\n            *ngFor=\"let field of this.validator?.FIELDS_DATA[this.id];let fieldIndex=index\">\r\n            <ng-container [ngSwitch]=\"field.type\">\r\n                <!-- Text Input -->\r\n                <div class=\"mat-label-input\" *ngSwitchCase=\"'text'\">\r\n                    <label>{{field.label}} <span style=\"color: red;\"\r\n                            *ngIf=\"field?.rules?.required\">*</span></label>\r\n                    <input [formControlName]=\"field.fieldName\" [(ngModel)]=\"field.value\"\r\n                        [placeholder]=\"field.placeholderText\" [disabled]=\"field?.Inputdisabled\"\r\n                        (keypress)=\"validator.max_length_validator(id, field.fieldName)\">\r\n                </div>\r\n\r\n                <!-- DateTime Input -->\r\n                <div class=\"mat-label-input\" *ngSwitchCase=\"'datetime'\">\r\n                    <label>{{field.label}} <span style=\"color: red;\"\r\n                            *ngIf=\"field?.rules?.required\">*</span></label>\r\n                    <input type=\"datetime-local\" [formControlName]=\"field.fieldName\" [(ngModel)]=\"field.value\"\r\n                        [disabled]=\"field?.Inputdisabled\"\r\n                        (keypress)=\"validator.max_length_validator(id, field.fieldName)\">\r\n                </div>\r\n\r\n                <!-- Time Input -->\r\n                <div class=\"mat-label-input\" *ngSwitchCase=\"'time'\">\r\n                    <label>{{field.label}} <span style=\"color: red;\"\r\n                            *ngIf=\"field?.rules?.required\">*</span></label>\r\n                    <input type=\"time\" [formControlName]=\"field.fieldName\" [(ngModel)]=\"field.value\"\r\n                        [disabled]=\"field?.Inputdisabled\"\r\n                        (keypress)=\"validator.max_length_validator(id, field.fieldName)\">\r\n                </div>\r\n\r\n                <!-- Button -->\r\n                <div *ngSwitchCase=\"'button'\" class=\"mb-2\">\r\n                    <button mat-raised-button color=\"primary\"\r\n                        (click)=\"AddButton?.emit({text: field?.text})\">{{field?.text}}</button>\r\n                </div>\r\n\r\n                <!-- Checkbox -->\r\n                <mat-checkbox *ngSwitchCase=\"'checkbox'\" [(ngModel)]=\"field.value\"\r\n                    [disabled]=\"field?.CheckboxDisabled\">{{field.label}}\r\n                    <span style=\"color: red;\" *ngIf=\"field?.rules?.required\">*</span>\r\n                </mat-checkbox>\r\n\r\n                <!-- Select Dropdown -->\r\n                <div class=\"mat-label-input\" *ngSwitchCase=\"'SelectOption'\">\r\n                    <label>{{field.label}} <span style=\"color: red;\"\r\n                            *ngIf=\"field?.rules?.required\">*</span></label>\r\n                    <select class=\"form-control\" [formControlName]=\"field.fieldName\" [(ngModel)]=\"field.value\"\r\n                        [disabled]=\"field?.Inputdisabled\">\r\n                        <option *ngFor=\"let item of field?.items\" [value]=\"item\">{{item}}</option>\r\n                    </select>\r\n                </div>\r\n\r\n                <!-- TextArea -->\r\n                <div class=\"mat-label-input\" *ngSwitchCase=\"'textarea'\">\r\n                    <label>{{field.label}} <span style=\"color: red;\"\r\n                            *ngIf=\"field?.rules?.required\">*</span></label>\r\n                    <textarea [formControlName]=\"field.fieldName\" [(ngModel)]=\"field.value\"\r\n                        [disabled]=\"field?.Inputdisabled\"\r\n                        (keypress)=\"validator.max_length_validator(id, field.fieldName)\"></textarea>\r\n                </div>\r\n\r\n                <!-- Email Input -->\r\n                <div class=\"mat-label-input\" *ngSwitchCase=\"'email'\">\r\n                    <label>{{field.label}} <span style=\"color: red;\"\r\n                            *ngIf=\"field?.rules?.required\">*</span></label>\r\n                    <input type=\"email\" [formControlName]=\"field.fieldName\" [(ngModel)]=\"field.value\"\r\n                        [disabled]=\"field?.Inputdisabled\"\r\n                        (keypress)=\"validator.max_length_validator(id, field.fieldName)\">\r\n                </div>\r\n\r\n                <!-- Number Input -->\r\n                <div class=\"mat-label-input\" *ngSwitchCase=\"'number'\">\r\n                    <label>{{field.label}} <span style=\"color: red;\"\r\n                            *ngIf=\"field?.rules?.required\">*</span></label>\r\n                    <input type=\"number\" [formControlName]=\"field.fieldName\" [(ngModel)]=\"field.value\"\r\n                        [disabled]=\"field?.Inputdisabled\"\r\n                        (keypress)=\"validator.max_length_validator(id, field.fieldName)\">\r\n                </div>\r\n\r\n                <!-- Other fields here (e.g., ImageShow, LabelShow, etc.) -->\r\n                <div class=\"form-group mb-0\" *ngSwitchCase=\"'MultipleButton'\">\r\n                    <label *ngIf=\"field.label\">{{ field.label }} <span style=\"color: red;\"\r\n                            *ngIf=\"field?.rules?.required\">*</span></label>\r\n                    <div class=\"d-flex flex-row\" [ngStyle]=\"field?.DivStyle\">\r\n                        <div class=\"btn-div\" *ngFor=\"let item of field?.buttonList; let i=index;\">\r\n                            <button mat-raised-button [style]=\"item?.buttonStyle\" [disabled]=\"item?.buttondisabled\"\r\n                                [ngClass]=\"item?.NgClass\"\r\n                                (click)=\"dumpFunc({ value: i, field: this.validator?.FIELDS_DATA[this.id], form: this.validator.dynamicFormGroup[this.id] }, item?.callback)\">\r\n                                <mat-icon *ngIf=\"item?.IconClass\">{{ item?.IconClass }}</mat-icon>\r\n                                {{ item?.ButtonText }}\r\n                            </button>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n\r\n                <div class=\"form-group mb-0\" *ngSwitchCase=\"'EmailButton'\">\r\n                    <label *ngIf=\"field.label\">{{ field.label }} <span style=\"color: red;\"\r\n                            *ngIf=\"field?.rules?.required\">*</span></label>\r\n                    <div [ngStyle]=\"field?.DivStyle\">\r\n                        <div>\r\n                            <label>{{ field.placeholderText }}</label>\r\n                            <input [(ngModel)]=\"field.value\" [disabled]=\"field?.Inputdisabled\" EmailValidator\r\n                                (keypress)=\"this.validator.max_length_validator(this.id, field.fieldName)\"\r\n                                [type]=\"field.InputType\" [name]=\"field.fieldName\" [formControlName]=\"field.fieldName\"\r\n                                [ngStyle]=\"field?.InputStyle\"\r\n                                (keydown)=\"dumpFunc({ value: field.value, field: this.validator?.FIELDS_DATA[this.id], form: this.validator.dynamicFormGroup[this.id] }, field?.KeyPressCallBack)\" />\r\n                        </div>\r\n                        <button mat-raised-button [style]=\"field?.buttonStyle\"\r\n                            [disabled]=\"field?.buttondisabled || this.validator.dynamicFormGroup[this.id]?.controls[field.fieldName]?.errors\">\r\n                            {{ field?.ButtonText }}\r\n                        </button>\r\n                    </div>\r\n                </div>\r\n\r\n                <div class=\"form-group mb-0\" *ngSwitchCase=\"'NumberButton'\">\r\n                    <label *ngIf=\"field.label\">{{ field.label }} <span style=\"color: red;\"\r\n                            *ngIf=\"field?.rules?.required\">*</span></label>\r\n                    <div [ngStyle]=\"field?.DivStyle\">\r\n                        <div>\r\n                            <label>{{ field.placeholderText }}</label>\r\n                            <input [(ngModel)]=\"field.value\" [disabled]=\"field?.Inputdisabled\" MaxMinValidation\r\n                                (keypress)=\"this.validator.max_length_validator(this.id, field.fieldName)\"\r\n                                [type]=\"field?.InputType\" [name]=\"field.fieldName\" [formControlName]=\"field.fieldName\"\r\n                                [ngStyle]=\"field?.InputStyle\"\r\n                                (keydown)=\"dumpFunc({ value: field.value, field: this.validator?.FIELDS_DATA[this.id], form: this.validator.dynamicFormGroup[this.id] }, field?.KeyPressCallBack)\" />\r\n                        </div>\r\n                        <button mat-raised-button [style]=\"field?.buttonStyle\"\r\n                            [disabled]=\"field?.buttondisabled || this.validator.dynamicFormGroup[this.id]?.controls[field.fieldName]?.errors\">\r\n                            {{ field?.ButtonText }}\r\n                        </button>\r\n                    </div>\r\n                </div>\r\n\r\n                <div class=\"form-group mb-0\" *ngSwitchCase=\"'password'\">\r\n                    <label *ngIf=\"field.label\">{{ field.label }} <span style=\"color: red;\"\r\n                            *ngIf=\"field?.rules?.required\">*</span></label>\r\n                    <div class=\"col-12 p-0\">\r\n                        <div>\r\n                            <label>{{ field.placeholderText }}</label>\r\n                            <input [(ngModel)]=\"field.value\" PasswordValidation\r\n                                (keypress)=\"this.validator.max_length_validator(this.id, field.fieldName)\"\r\n                                [type]=\"field.showhide ? 'text' : 'password'\" [name]=\"field.fieldName\" />\r\n                            <button mat-icon-button matSuffix (click)=\"field.showhide = !field.showhide\">\r\n                                <mat-icon>{{ field.showhide ? 'visibility' : 'visibility_off' }}</mat-icon>\r\n                            </button>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n\r\n                <div class=\"form-group mb-0\" *ngSwitchCase=\"'date'\">\r\n                    <label *ngIf=\"field.label\">{{ field.label }} <span style=\"color: red;\"\r\n                            *ngIf=\"field?.rules?.required\">*</span></label>\r\n                    <div>\r\n                        <label>{{ field.placeholderText }}</label>\r\n                        <input [(ngModel)]=\"field.value\" [disabled]=\"field?.Inputdisabled\"\r\n                            (change)=\"dumpFunc({ value: $event?.target, field: this.validator?.FIELDS_DATA[this.id], form: this.validator.dynamicFormGroup[this.id] }, field?.callback)\"\r\n                            [type]=\"field.type\" [name]=\"field.fieldName\" [formControlName]=\"field.fieldName\" />\r\n                    </div>\r\n                </div>\r\n\r\n                <div class=\"form-group mb-0\" *ngSwitchCase=\"'currency'\">\r\n                    <label *ngIf=\"field.label\">{{ field.label }} <span style=\"color: red;\"\r\n                            *ngIf=\"field?.rules?.required\">*</span></label>\r\n                    <div>\r\n                        <label>{{ field.placeholderText }}</label>\r\n                        <mat-select [disabled]=\"field?.Inputdisabled\" [(ngModel)]=\"field.value\"\r\n                            (selectionChange)=\"AutoFillCurrency($event, field?.autofill)\">\r\n                            <mat-option *ngFor=\"let currency of this.validator.CURRENCY_LIST\" [value]=\"currency.type\">{{\r\n                                currency.type }}</mat-option>\r\n                        </mat-select>\r\n                    </div>\r\n                </div>\r\n\r\n                <div class=\"form-group mb-0\" *ngSwitchCase=\"'MatCheckBox'\">\r\n                    <label *ngIf=\"field.label\">{{ field.label }} <span style=\"color: red;\"\r\n                            *ngIf=\"field?.rules?.required\">*</span></label>\r\n                    <mat-radio-group [(ngModel)]=\"field.value\"\r\n                        (change)=\"field?.callback ? field?.callback($event) : ''\">\r\n                        <mat-radio-button *ngFor=\"let item of field?.items\" [value]=\"item.value\">{{ item.text\r\n                            }}</mat-radio-button>\r\n                    </mat-radio-group>\r\n                </div>\r\n\r\n                <div class=\"form-group mb-0\" *ngSwitchCase=\"'MultiCheckBox'\">\r\n                    <label *ngIf=\"field.label\">{{ field.label }} <span style=\"color: red;\"\r\n                            *ngIf=\"field?.rules?.required\">*</span></label>\r\n                    <mat-checkbox *ngFor=\"let checkbox of field?.checkboxlabel\" [(ngModel)]=\"checkbox.checked\"\r\n                        (change)=\"HideShowInput($event, field?.HideShowInput, fieldIndex, field?.callback)\">\r\n                        {{ checkbox.label }}\r\n                    </mat-checkbox>\r\n                    <mat-error *ngIf=\"field?.errorMessage\">{{ field?.errorMessage }}</mat-error>\r\n                </div>\r\n                <div class=\"form-group mb-0 p-0\" *ngIf=\"field?.showhide === true || field?.showhide === undefined\">\r\n                    <div class=\"form-group mb-0\" *ngSwitchCase=\"'formGroup'\" [formArrayName]=\"field.fieldName\">\r\n                        <label *ngIf=\"field.label\">{{ field.label }} <span style=\"color: red;\"\r\n                                *ngIf=\"field?.rules?.required\">*</span></label>\r\n                        <div class=\"col-12 p-0\" [style]=\"field?.ParentStyle\">\r\n                            <div class=\"col-12 formGroup-division-panel\" [style]=\"field?.Style\"\r\n                                *ngFor=\"let Optionfield of field?.NewformArray; let OptionfieldIndex = index\">\r\n                                <label>{{ field?.GroupLabel[OptionfieldIndex] }}</label>\r\n                                <div class=\"col-12 row m-0 add-btn-panel p-0\" *ngIf=\"field?.AddNewRequried === true\">\r\n                                    <button mat-raised-button color=\"primary\"\r\n                                        *ngIf=\"(field?.NewformArray?.length - 1) === OptionfieldIndex && (field?.NewformArray?.length) !== field?.MAX_LIMIT\"\r\n                                        (click)=\"this.validator.addNewFormArray(this.id, fieldIndex, field.fieldName)\">\r\n                                        <mat-icon>add</mat-icon>\r\n                                    </button>\r\n                                    <button mat-raised-button color=\"warn\" *ngIf=\"OptionfieldIndex !== 0\"\r\n                                        (click)=\"this.validator.removeNewFormArray(this.id, fieldIndex, field.fieldName, OptionfieldIndex)\">\r\n                                        <mat-icon>remove</mat-icon>\r\n                                    </button>\r\n                                </div>\r\n                                <div class=\"col-10 p-0\"\r\n                                    *ngFor=\"let FormOptionfield of field?.OrderKey[OptionfieldIndex]; let FormOptionfieldIndex = index\"\r\n                                    [formGroupName]=\"OptionfieldIndex\"\r\n                                    [ngClass]=\"{'hidden': Optionfield[FormOptionfield]?.disabled === true}\">\r\n                                    <ng-container [ngSwitch]=\"Optionfield[FormOptionfield]?.type\">\r\n                                        <div class=\"form-group mb-0\" *ngSwitchCase=\"'LabelShow'\">\r\n                                            <label *ngIf=\"Optionfield[FormOptionfield]?.label\">{{\r\n                                                Optionfield[FormOptionfield]?.label }} <span style=\"color: red;\"\r\n                                                    *ngIf=\"Optionfield[FormOptionfield]?.rules?.required\">*</span></label>\r\n                                            <span [innerHTML]=\"Optionfield[FormOptionfield].value\"></span>\r\n                                        </div>\r\n                                        <div class=\"form-group mb-0\"\r\n                                            *ngIf=\"Optionfield[FormOptionfield]?.visible === true || Optionfield[FormOptionfield]?.visible === undefined\">\r\n                                            <div>\r\n                                                <label *ngIf=\"Optionfield[FormOptionfield]?.label\">{{\r\n                                                    Optionfield[FormOptionfield]?.label }} <span style=\"color: red;\"\r\n                                                        *ngIf=\"Optionfield[FormOptionfield]?.rules?.required\">*</span></label>\r\n                                                <mat-select [formControlName]=\"Optionfield[FormOptionfield]?.fieldName\"\r\n                                                    [(ngModel)]=\"Optionfield[FormOptionfield].value\"\r\n                                                    [disabled]=\"Optionfield[FormOptionfield]?.Inputdisabled\"\r\n                                                    (selectionChange)=\"this.validator.setValueFromArray(this.id, this.validator.dynamicFormGroup[this.id], field.fieldName, OptionfieldIndex, Optionfield[FormOptionfield]?.fieldName, $event)\">\r\n                                                    <mat-option\r\n                                                        *ngFor=\"let Optionfielditem of Optionfield[FormOptionfield]?.items\"\r\n                                                        [value]=\"Optionfielditem\">{{ Optionfielditem }}</mat-option>\r\n                                                </mat-select>\r\n                                            </div>\r\n                                        </div>\r\n                                        <div class=\"form-group mb-0\" *ngSwitchCase=\"'email'\">\r\n                                            <div>\r\n                                                <label *ngIf=\"Optionfield[FormOptionfield]?.label\">{{\r\n                                                    Optionfield[FormOptionfield]?.label }} <span style=\"color: red;\"\r\n                                                        *ngIf=\"Optionfield[FormOptionfield]?.rules?.required\">*</span></label>\r\n                                                <input type=\"email\"\r\n                                                    [formControlName]=\"Optionfield[FormOptionfield]?.fieldName\"\r\n                                                    [(ngModel)]=\"Optionfield[FormOptionfield].value\"\r\n                                                    [disabled]=\"Optionfield[FormOptionfield]?.disabled\"\r\n                                                    (change)=\"this.validator.setValueFromArray(this.id, this.validator.dynamicFormGroup[this.id], field.fieldName, OptionfieldIndex, Optionfield[FormOptionfield]?.fieldName, $event.target)\" />\r\n                                            </div>\r\n                                        </div>\r\n                                        <div class=\"form-group mb-0\" *ngSwitchCase=\"'CheckboxMultiple'\">\r\n                                            <mat-checkbox [(ngModel)]=\"Optionfield[FormOptionfield].value\"\r\n                                                (change)=\"this.validator.setValueFromArray(this.id, this.validator.dynamicFormGroup[this.id], field.fieldName, OptionfieldIndex, Optionfield[FormOptionfield]?.fieldName, $event.checked)\">\r\n                                                {{ Optionfield[FormOptionfield]?.checkboxlabel }}\r\n                                            </mat-checkbox>\r\n                                        </div>\r\n                                        <div class=\"form-group mb-0\" *ngSwitchCase=\"'number'\">\r\n                                            <div>\r\n                                                <label *ngIf=\"Optionfield[FormOptionfield]?.label\">{{\r\n                                                    Optionfield[FormOptionfield]?.label }} <span style=\"color: red;\"\r\n                                                        *ngIf=\"Optionfield[FormOptionfield]?.rules?.required\">*</span></label>\r\n                                                <input type=\"number\"\r\n                                                    [formControlName]=\"Optionfield[FormOptionfield]?.fieldName\"\r\n                                                    [(ngModel)]=\"Optionfield[FormOptionfield].value\"\r\n                                                    [disabled]=\"Optionfield[FormOptionfield]?.disabled\"\r\n                                                    (change)=\"this.validator.setValueFromArray(this.id, this.validator.dynamicFormGroup[this.id], field.fieldName, OptionfieldIndex, Optionfield[FormOptionfield]?.fieldName, $event.target)\" />\r\n                                            </div>\r\n                                        </div>\r\n                                        <div class=\"form-group mb-0\" *ngSwitchCase=\"'date'\">\r\n                                            <div>\r\n                                                <label *ngIf=\"Optionfield[FormOptionfield]?.label\">{{\r\n                                                    Optionfield[FormOptionfield]?.label }} <span style=\"color: red;\"\r\n                                                        *ngIf=\"Optionfield[FormOptionfield]?.rules?.required\">*</span></label>\r\n                                                <input type=\"date\"\r\n                                                    [formControlName]=\"Optionfield[FormOptionfield]?.fieldName\"\r\n                                                    [(ngModel)]=\"Optionfield[FormOptionfield].value\"\r\n                                                    [disabled]=\"Optionfield[FormOptionfield]?.disabled\"\r\n                                                    (change)=\"this.validator.setValueFromArray(this.id, this.validator.dynamicFormGroup[this.id], field.fieldName, OptionfieldIndex, Optionfield[FormOptionfield]?.fieldName, $event.target)\" />\r\n                                            </div>\r\n                                        </div>\r\n                                    </ng-container>\r\n                                    <inner-dynamic-error [SUBMIT_ERROR]=\"this.SUBMIT_ERROR\"\r\n                                        [formName]=\"this.validator.dynamicFormGroup[this.id]?.controls[field.fieldName]?.controls[OptionfieldIndex]\"\r\n                                        [fieldName]=\"Optionfield[FormOptionfield]?.fieldName\"></inner-dynamic-error>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </ng-container>\r\n            <inner-dynamic-error [SUBMIT_ERROR]=\"this.SUBMIT_ERROR\"\r\n                [formName]=\"this.validator.dynamicFormGroup[this.id]\" [fieldName]=\"field.fieldName\"\r\n                [ErrorMessage]=\"field?.ErrorMessage\"></inner-dynamic-error>\r\n        </div>\r\n    </form>\r\n    <div [ngClass]=\"{'more-button-panel':this.BUTTON_PANEL_SHOW==true}\"\r\n        [style]=\"this.BUTTON_PANEL_HIDE==true?'display:flex;':'display:none'\" [style]=\"ButtonPanelStyle\">\r\n        <ng-content></ng-content>\r\n        <div class=\"btn-controller\"\r\n            [ngClass]=\"{'button-show':this.HIDE_SUBMIT_BUTTON==true,'button-hide':this.HIDE_SUBMIT_BUTTON==false}\">\r\n            <button class=\"btn btn-danger\" (click)=\"CancelRouterNavigate(this.CancelRoute)\">Cancel</button>\r\n            <button *ngIf=\"BUTTON_PANEL_SHOW==true\" type=\"button\" class=\"btn btn-primary submit-button\" [id]=\"this.id\"\r\n                [style]=\"this.HIDE_SUBMIT_BUTTON==true?'display:block;':'display:none'\" [style]=\"SubmitButtonStyle\"\r\n                [disabled]=\"this.validator.dynamicFormGroup[this.id]?.invalid\"\r\n                (click)=\"onSubmit($event,this.validator.dynamicFormGroup[this.id]);\">{{SubmitName}}</button>\r\n            <button *ngIf=\"BUTTON_PANEL_SHOW==false\" type=\"button\" class=\"btn btn-primary submit-button\" [id]=\"this.id\"\r\n                [style]=\"SubmitButtonStyle\" [disabled]=\"this.validator.dynamicFormGroup[this.id]?.invalid\"\r\n                (click)=\"onSubmit($event,this.validator.dynamicFormGroup[this.id]);\">{{SubmitName}}</button>\r\n        </div>\r\n    </div>\r\n</div>","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'more-content',\r\n  templateUrl: './more-content.component.html',\r\n  styleUrls: ['./more-content.component.scss']\r\n})\r\nexport class MoreContentComponent implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<ng-content></ng-content>","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { SharedHomeModule } from './reactive-json-forms-controller/shared-home.module';\r\nimport { ReactiveJsonFormsService } from \"./reactive-json-forms-controller/service/upload-service-validator.service\";\r\nimport { UploadComponentsComponent } from \"./reactive-json-forms-controller/upload-components/upload-components.component\";\r\nimport { InnerDynamicErrorComponent } from \"./reactive-json-forms-controller/upload-components/inner-dynamic-error/inner-dynamic-error.component\";\r\nimport { MoreContentComponent } from \"./reactive-json-forms-controller/upload-components/more-content/more-content.component\";\r\n@NgModule({\r\n  declarations: [\r\n    UploadComponentsComponent,\r\n    InnerDynamicErrorComponent,\r\n    MoreContentComponent\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    OverlayModule,\r\n    SharedHomeModule\r\n  ],\r\n  providers: [ReactiveJsonFormsService],\r\n  exports: [\r\n    OverlayModule,\r\n    UploadComponentsComponent,\r\n    InnerDynamicErrorComponent,\r\n    MoreContentComponent\r\n  ],\r\n  schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n})\r\nexport class JsonReactiveFormModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'customSlicePipe'\r\n})\r\nexport class CustomSlicePipePipe implements PipeTransform {\r\n  transform(value: any, ...args: any[]): unknown {\r\n    let start_index: any = args[0];\r\n    let batch_size: any = args[1];\r\n    if (start_index > 0) {\r\n      let b = ((start_index + 1) * batch_size);\r\n      let end = value.length > b ? b : value.length;\r\n      let a = b - args[1];\r\n      let data: any = value.slice(a, end);\r\n      return data;\r\n    }\r\n    return value.slice(start_index, batch_size);\r\n  }\r\n}\r\n","/*\r\n * Public API Surface of modal-pop-up\r\n */\r\n\r\nexport * from './lib/reactive-json-forms-controller/material.module';\r\nexport * from './lib/reactive-json-forms-controller/shared-home.module';\r\nexport * from './lib/json-reactive-form.module';\r\nexport * from './lib/reactive-json-forms-controller/service/upload-service-validator.service'\r\nexport * from './lib/reactive-json-forms-controller/upload-components/upload-components.component';\r\nexport * from './lib/reactive-json-forms-controller/upload-components/inner-dynamic-error/inner-dynamic-error.component';\r\nexport * from './lib/reactive-json-forms-controller/upload-components/more-content/more-content.component';\r\nexport * from './lib/reactive-json-forms-controller/upload-components/pipe/custom-slice-pipe.pipe';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.ReactiveJsonFormsService","i8.InnerDynamicErrorComponent"],"mappings":"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"}