{"version":3,"file":"elm-common-standards.mjs","sources":["../../../projects/elm-common-standard/src/lib/elm-common.service.ts","../../../projects/elm-common-standard/src/lib/elm-common.component.ts","../../../projects/elm-common-standard/src/lib/elm-common.component.html","../../../projects/elm-common-standard/src/lib/generic-message/enum/popup-message-icon-type.enum.ts","../../../projects/elm-common-standard/src/lib/service/g-messages.service.ts","../../../projects/elm-common-standard/src/lib/service/http-common.service.ts","../../../projects/elm-common-standard/src/lib/service/abstract-message-service.ts","../../../projects/elm-common-standard/src/lib/service/g-messages.service1.ts","../../../projects/elm-common-standard/src/lib/service/translation.service.ts","../../../projects/elm-common-standard/src/lib/datatable/validators/validator-regex.ts","../../../projects/elm-common-standard/src/lib/datatable/component/dataTableModel/enum/InputValidatorsEnum.ts","../../../projects/elm-common-standard/src/lib/datatable/validators/manual-validator.service.ts","../../../projects/elm-common-standard/src/lib/elm-common.module.ts","../../../projects/elm-common-standard/src/lib/directive/has-permision/has-permission.directive.ts","../../../projects/elm-common-standard/src/lib/directive/has-permision/has-permission.module.ts","../../../projects/elm-common-standard/src/lib/datatable/service/GDataTableService.ts","../../../projects/elm-common-standard/src/lib/datatable/component/dataTableModel/enum/FilterOperationEnum.ts","../../../projects/elm-common-standard/src/lib/datatable/component/Formatters/NumberFormaters.ts","../../../projects/elm-common-standard/src/lib/datatable/component/dataTableModel/ColumnDefinition.ts","../../../projects/elm-common-standard/src/lib/datatable/component/dataTableModel/FilterCriteria.ts","../../../projects/elm-common-standard/src/lib/datatable/component/dataTableModel/SortCriteria.ts","../../../projects/elm-common-standard/src/lib/datatable/component/dataTableModel/InputDataModel.ts","../../../projects/elm-common-standard/src/lib/datatable/component/dataTableModel/ActionListDet.ts","../../../projects/elm-common-standard/src/lib/datatable/component/dataTableModel/BadgesSeverityColorsMap.ts","../../../projects/elm-common-standard/src/lib/datatable/component/dataTableModel/enum/ConditionOperatorsEnum.ts","../../../projects/elm-common-standard/src/lib/datatable/component/dataTableModel/GenericCondition.ts","../../../projects/elm-common-standard/src/lib/datatable/model/PaginatorProperties.ts","../../../projects/elm-common-standard/src/lib/datatable/component/dataTableModel/enum/ActionRenderTypeEnum.ts","../../../projects/elm-common-standard/src/lib/datatable/component/dataTableModel/enum/ResponsiveLayoutEnum.ts","../../../projects/elm-common-standard/src/lib/datatable/model/GTableProperties.ts","../../../projects/elm-common-standard/src/lib/datatable/component/dataTableModel/enum/ColumnTypEnum.ts","../../../projects/elm-common-standard/src/lib/pipe/HijriDateFormat/HijriFormatPipe.ts","../../../projects/elm-common-standard/src/lib/pipe/HijriDateFormat/HijriFormatPipe.module.ts","../../../projects/elm-common-standard/src/lib/inputs/hijri-calendars/service/IslamicI18n.ts","../../../projects/elm-common-standard/src/lib/inputs/hijri-calendars/service/CustomAdapter.ts","../../../projects/elm-common-standard/src/lib/inputs/hijri-calendars/service/CustomDateParserFormatter.ts","../../../projects/elm-common-standard/src/lib/inputs/hijri-calendars/ng-hijri-calendar/ng-datepicker-hijri.component.ts","../../../projects/elm-common-standard/src/lib/inputs/hijri-calendars/ng-hijri-calendar/ng-datepicker-hijri.component.html","../../../projects/elm-common-standard/src/lib/datatable/component/dataTableModel/enum/SeverityTypeEnum.ts","../../../projects/elm-common-standard/src/lib/service/dropdown.service.ts","../../../projects/elm-common-standard/src/lib/directive/translation/translation.service.ts","../../../projects/elm-common-standard/src/lib/datatable/component/g-datatable.component.ts","../../../projects/elm-common-standard/src/lib/datatable/component/g-datatable.component.html","../../../projects/elm-common-standard/src/lib/datatable/component/dataTableModel/enum/ColorEnum.ts","../../../projects/elm-common-standard/src/lib/datatable/component/dataTableModel/enum/SortOrderEnum.ts","../../../projects/elm-common-standard/src/lib/datatable/component/dataTableModel/enum/FilterColumnTypeEnum.ts","../../../projects/elm-common-standard/src/lib/inputs/enum/input-language.enum.ts","../../../projects/elm-common-standard/src/lib/inputs/enum/input-display.ts","../../../projects/elm-common-standard/src/lib/inputs/input-text/input-text.component.ts","../../../projects/elm-common-standard/src/lib/inputs/input-text/input-text.component.html","../../../projects/elm-common-standard/src/lib/inputs/enum/input-number-type.ts","../../../projects/elm-common-standard/src/lib/inputs/input-number/input-number.component.ts","../../../projects/elm-common-standard/src/lib/inputs/input-number/input-number.component.html","../../../projects/elm-common-standard/src/lib/inputs/checkbox/checkbox.component.ts","../../../projects/elm-common-standard/src/lib/inputs/checkbox/checkbox.component.html","../../../projects/elm-common-standard/src/lib/inputs/dropdown/dropdown.component.ts","../../../projects/elm-common-standard/src/lib/inputs/dropdown/dropdown.component.html","../../../projects/elm-common-standard/src/lib/inputs/calendars/calendar/calendar.component.ts","../../../projects/elm-common-standard/src/lib/inputs/calendars/calendar/calendar.component.html","../../../projects/elm-common-standard/src/lib/inputs/calendars/date-time-calendar/date-time-calendar.component.ts","../../../projects/elm-common-standard/src/lib/inputs/calendars/date-time-calendar/date-time-calendar.component.html","../../../projects/elm-common-standard/src/lib/inputs/file-upload/file-upload.component.ts","../../../projects/elm-common-standard/src/lib/inputs/file-upload/file-upload.component.html","../../../projects/elm-common-standard/src/lib/inputs/radio-button/radio-button.component.ts","../../../projects/elm-common-standard/src/lib/inputs/radio-button/radio-button.component.html","../../../projects/elm-common-standard/src/lib/inputs/g-text-area/g-text-area.component.ts","../../../projects/elm-common-standard/src/lib/inputs/g-text-area/g-text-area.component.html","../../../projects/elm-common-standard/src/lib/inputs/multiselect/multiselect.component.ts","../../../projects/elm-common-standard/src/lib/inputs/multiselect/multiselect.component.html","../../../projects/elm-common-standard/src/lib/bread-crumb/service/bread-crumb.service.ts","../../../projects/elm-common-standard/src/lib/bread-crumb/bread-crumb.component.ts","../../../projects/elm-common-standard/src/lib/bread-crumb/bread-crumb.component.html","../../../projects/elm-common-standard/src/lib/bread-crumb/model/bread-crumb-model.ts","../../../projects/elm-common-standard/src/lib/spinner/spinner.service.ts","../../../projects/elm-common-standard/src/lib/spinner/spinner/spinner.component.ts","../../../projects/elm-common-standard/src/lib/spinner/spinner/spinner.component.html","../../../projects/elm-common-standard/src/lib/stepper/model/status-modal.ts","../../../projects/elm-common-standard/src/lib/stepper/model/StatusStep.ts","../../../projects/elm-common-standard/src/lib/stepper/StepsStatusComponents/approved-status/approved-status.component.ts","../../../projects/elm-common-standard/src/lib/stepper/StepsStatusComponents/approved-status/approved-status.component.html","../../../projects/elm-common-standard/src/lib/stepper/StepsStatusComponents/waiting-status/waiting-status.component.ts","../../../projects/elm-common-standard/src/lib/stepper/StepsStatusComponents/waiting-status/waiting-status.component.html","../../../projects/elm-common-standard/src/lib/stepper/StepsStatusComponents/canceled-status/canceled-status.component.ts","../../../projects/elm-common-standard/src/lib/stepper/StepsStatusComponents/canceled-status/canceled-status.component.html","../../../projects/elm-common-standard/src/lib/stepper/StepsStatusComponents/unknown-status/unknown-status.component.ts","../../../projects/elm-common-standard/src/lib/stepper/StepsStatusComponents/unknown-status/unknown-status.component.html","../../../projects/elm-common-standard/src/lib/stepper/StepsStatusComponents/uncomplete-status/uncomplete-status.component.ts","../../../projects/elm-common-standard/src/lib/stepper/StepsStatusComponents/uncomplete-status/uncomplete-status.component.html","../../../projects/elm-common-standard/src/lib/stepper/StepsStatusComponents/default-status/default-status.component.ts","../../../projects/elm-common-standard/src/lib/stepper/StepsStatusComponents/default-status/default-status.component.html","../../../projects/elm-common-standard/src/lib/stepper/model/step-record-details.ts","../../../projects/elm-common-standard/src/lib/stepper/model/default-steps-info.ts","../../../projects/elm-common-standard/src/lib/stepper/service/stepperService.service.ts","../../../projects/elm-common-standard/src/lib/stepper/stepper.component.ts","../../../projects/elm-common-standard/src/lib/stepper/stepper.component.html","../../../projects/elm-common-standard/src/lib/stepper/enum/status.enum.ts","../../../projects/elm-common-standard/src/lib/stepper/enum/waiting-process.enum.ts","../../../projects/elm-common-standard/src/lib/validators/form-control-validation.ts","../../../projects/elm-common-standard/src/lib/model/request-response/GenericResponseRoot.ts","../../../projects/elm-common-standard/src/lib/model/request-response/GenericResponseElement.ts","../../../projects/elm-common-standard/src/lib/model/DropdownModel.ts","../../../projects/elm-common-standard/src/lib/model/HintTypeEnum.ts","../../../projects/elm-common-standard/src/lib/interceptors/config/application-config.service.ts","../../../projects/elm-common-standard/src/lib/interceptors/AuthInterceptor.ts","../../../projects/elm-common-standard/src/lib/guards/AuthenticationGuard.ts","../../../projects/elm-common-standard/src/lib/guards/AuthorizationGuard.ts","../../../projects/elm-common-standard/src/lib/inputs/hijri-calendars/hijri-calendar/datepicker-hijri.component.ts","../../../projects/elm-common-standard/src/lib/inputs/hijri-calendars/hijri-calendar/datepicker-hijri.component.html","../../../projects/elm-common-standard/src/lib/generic-message/component/generic-message.component.ts","../../../projects/elm-common-standard/src/lib/generic-message/component/generic-message.component.html","../../../projects/elm-common-standard/src/public-api.ts","../../../projects/elm-common-standard/src/elm-common-standards.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ElmCommonService {\r\n\r\n  constructor() { }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'elm-common',\r\n  templateUrl: './elm-common.component.html',\r\n  styleUrls: ['./elm-common.component.scss']\r\n})\r\nexport class ElmCommonComponent {\r\n\r\n}\r\n","","export enum PopupMessageIconType {\r\n  Success = \"success\",\r\n  Error = \"error\",\r\n  Alert = \"alert\",\r\n}\r\n","import {inject, Injectable, signal, WritableSignal} from \"@angular/core\";\r\nimport { NavigationEnd, Router } from \"@angular/router\";\r\nimport {AlertMessage} from \"../datatable/component/dataTableModel/alertMessage\";\r\nimport {IGPopupMessage} from \"../generic-message/model/g-popup-message.model\";\r\nimport {PopupMessageIconType} from \"../generic-message/enum/popup-message-icon-type.enum\";\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class GMessagesService {\r\n  #router: Router = inject(Router);\r\n  gPopupMessage: WritableSignal<IGPopupMessage | null> = signal<IGPopupMessage | null>(null);\r\n  errorTitle: any;\r\n\r\n  constructor() {\r\n    this.onRouteChanged();\r\n  }\r\n\r\n  onRouteChanged() {\r\n    this.#router.events.subscribe((event) => {\r\n      if(event instanceof NavigationEnd){\r\n        if(this.gPopupMessage()?.iconType === PopupMessageIconType.Error) {\r\n          this.gPopupMessage.set(null);\r\n        }\r\n      }\r\n    })\r\n  }\r\n\r\n  showToast(message: AlertMessage){\r\n    const DETAIL = message.key ??  message.detail ?? message?.summary;\r\n    this.showMessage(this.getMessage('error',  '', DETAIL, message.severity as PopupMessageIconType ,!!message.key, message?.uuid));\r\n  };\r\n\r\n  showMessages(messages: AlertMessage[]){\r\n    const FIRST_MESSAGE = messages?.length ? messages[0] : null;\r\n    const DETAIL = FIRST_MESSAGE?.key ?? FIRST_MESSAGE?.detail ?? FIRST_MESSAGE?.summary ?? '';\r\n    this.showMessage(this.getMessage('error',  '', DETAIL, FIRST_MESSAGE?.severity as PopupMessageIconType ??  PopupMessageIconType.Error ,!!FIRST_MESSAGE?.key, FIRST_MESSAGE?.uuid));\r\n  };\r\n\r\n  showInfo(summary: string, detail: string, iskey?: boolean, keepalive?: boolean, uuid?: string){\r\n    this.showMessage(this.getMessage('error', summary, detail,  PopupMessageIconType.Alert ,iskey, uuid));\r\n  };\r\n\r\n  showError(summary: string, detail: string, iskey?: boolean, keepalive?: boolean, uuid?: string){\r\n    this.showMessage(this.getMessage('error', summary, detail, PopupMessageIconType.Error ,iskey, uuid));\r\n  };\r\n\r\n  showSuccess(summary: string, detail: string, iskey?: boolean, keepalive?: boolean, uuid?: string){\r\n    this.showMessage(this.getMessage('success', summary, detail, PopupMessageIconType.Success, iskey, uuid));\r\n  };\r\n  showWarn(summary: string, detail: string, iskey: boolean, keepalive?: boolean, uuid?: string){\r\n    this.showMessage(this.getMessage('MOH.TR.warningHeader', summary, detail,  PopupMessageIconType.Alert, iskey, uuid));\r\n  };\r\n\r\n  showAll(messages: any){\r\n    const FIRST_MESSAGE = messages?.length ? messages[0] : null;\r\n    const DETAIL = FIRST_MESSAGE?.key ?? FIRST_MESSAGE?.detail ?? FIRST_MESSAGE?.summary ?? '';\r\n    this.showMessage(this.getMessage('error', '', DETAIL, FIRST_MESSAGE?.severity ?? PopupMessageIconType.Error ,!!FIRST_MESSAGE?.key, FIRST_MESSAGE?.uuid));\r\n  };\r\n\r\n\r\n  getMessage(title:string, summary:string, detail:string, iconType:PopupMessageIconType, iskey?: boolean, uuid?: string):IGPopupMessage{\r\n    return {\r\n      title:  this.errorTitle?.length ? this.errorTitle : title,\r\n      isTranslatedTitle: this.errorTitle ? false : true,\r\n      isTranslatedMessage: iskey,\r\n      uuid: uuid,\r\n      showIcon: true,\r\n      iconType: iconType,\r\n      manualClose: false,\r\n      message: detail?.length ? detail : summary,\r\n    }\r\n  }\r\n\r\n\r\n  showMessage(message: IGPopupMessage) {\r\n    message.visible = true;\r\n    let primaryAction = message.primaryAction ? message.primaryAction() : null;\r\n    let close = message.close ? message.close() : null;\r\n    let secondaryAction = message.secondaryAction ? message.secondaryAction() : null;\r\n    let defaultDuration = 5000;\r\n    if(message.iconType === PopupMessageIconType.Error){\r\n      defaultDuration = 30000;\r\n    }\r\n    message.primaryAction = () => {\r\n      primaryAction;\r\n      message.visible = false;\r\n    }\r\n\r\n    message.close = () => {\r\n      close;\r\n      message.visible = false;\r\n    }\r\n\r\n    message.secondaryAction = () => {\r\n      secondaryAction;\r\n      message.visible = false;\r\n    }\r\n\r\n    if(!message.manualClose){\r\n      setTimeout(() => {\r\n        message.visible = false\r\n      }, message.duration ?? defaultDuration)\r\n    }\r\n    this.errorTitle = '';\r\n    this.gPopupMessage.set(message);\r\n  }\r\n\r\n\r\n\r\n  destroy():void {\r\n\r\n  };\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\nimport {Observable, throwError} from \"rxjs\";\r\nimport {HttpClient} from \"@angular/common/http\";\r\nimport {map} from \"rxjs/operators\";\r\nimport {GMessagesService} from \"./g-messages.service\";\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class HttpCommonService {\r\n\r\n  constructor(private http: HttpClient, private messageService: GMessagesService) {}\r\n\r\n  public postObservable<T>(url: string, requestBody: any, headers?: any, responseType?: 'json'): Observable<T> {\r\n\r\n    return this.http.post<any>(url, requestBody, { headers, responseType }).pipe(\r\n      map((data: any) => {\r\n        if (data.response.responseCode != \"0\") {\r\n          this.messageService.showError(\"\", data.response.responseDesc, false);\r\n        }\r\n        //TODO return specification\r\n        return data;\r\n      }),\r\n    );\r\n  }\r\n\r\n  public getObservable<T>(url: string, headers: any): Observable<T> {\r\n\r\n    return this.http.get<any>(url, { headers }).pipe(\r\n      map((data: any) => {\r\n        if (data.response.responseCode != \"0\") {\r\n          this.messageService.showError(\"\", data.response.responseDesc, false);\r\n        }\r\n        return data;\r\n      })\r\n    );\r\n  }\r\n\r\n}\r\n","import {AlertMessage} from \"../datatable/component/dataTableModel/alertMessage\";\r\n\r\n\r\nexport abstract class AbstractMessageService {\r\n\r\n  abstract showToast(Message: AlertMessage): void;\r\n\r\n  abstract showInfo(summary: string, detail: string, Iskey: boolean): void;\r\n\r\n  abstract showError(summary: string, detail: string, Iskey: boolean): void;\r\n\r\n  abstract showSuccess(summary: string, detail: string, Iskey: boolean): void;\r\n\r\n  abstract showWarn(summary: string, detail: string, Iskey: boolean): void;\r\n\r\n  abstract destroy(): void;\r\n}\r\n\r\n\r\n","import {Injectable} from \"@angular/core\";\r\nimport {MessageService} from \"primeng/api\";\r\nimport {Subject} from \"rxjs\";\r\n\r\nimport {TranslateService} from \"@ngx-translate/core\";\r\nimport {AlertMessage} from \"../datatable/component/dataTableModel/alertMessage\";\r\nimport {AbstractMessageService} from \"./abstract-message-service\";\r\n\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class GMessagesService1 extends AbstractMessageService{\r\n\r\n  alertSubject = new Subject<AlertMessage>();\r\n  keepalive:any=false;\r\n  constructor(private messageService: MessageService,private translate: TranslateService) {\r\n    super();\r\n    this.alertSubject.subscribe((Message:any) => {\r\n      //debugger\r\n      if (Array.isArray(Message)) {\r\n        this.showMessages(Message);\r\n      } else {\r\n        //debugger\r\n        if(Message.keepAlive){\r\n          this.keepalive=Message.keepAlive;\r\n        }\r\n        this.showToast(Message);\r\n      }\r\n    });\r\n  }\r\n\r\n  showToast(Message: AlertMessage): void {\r\n    this.messageService.clear();\r\n    this.messageService.add({\r\n      severity: Message.severity,\r\n      summary: Message.summary,\r\n      detail: Message.detail,\r\n      key:Message.key!\r\n    });\r\n  }\r\n  showMessages(messages: AlertMessage[]): void {\r\n    this.messageService.clear();\r\n      this.messageService.addAll(messages);\r\n  }\r\n  showInfo(summary: string, detail: string,Iskey?:boolean,keepalive?:boolean): void {\r\n\r\n    if(Iskey){\r\n      this.translate.get(detail).subscribe((content:any)=> {\r\n        this.translate.get(summary).subscribe((header:any)=> {\r\n          this.alertSubject.next({ severity: 'info', summary:header, detail:content,keepalive:keepalive});\r\n        });\r\n\r\n      });\r\n    }else{this.alertSubject.next({ severity: 'info', summary:summary, detail:detail,keepalive:keepalive});}\r\n\r\n  }\r\n  showError(summary: string, detail: string,Iskey?:boolean,keepalive?:boolean): void {\r\n    if(keepalive){this.keepalive=keepalive}\r\n    if(Iskey){\r\n      this.translate.get(detail).subscribe((content:any)=> {\r\n        this.translate.get(summary).subscribe((header:any)=> {\r\n          this.alertSubject.next({ severity: 'error', summary:header, detail:content,keepalive:keepalive});\r\n        });\r\n\r\n      });\r\n    }else{this.alertSubject.next({ severity: 'error',  summary:summary, detail:detail,keepalive:keepalive},);}\r\n\r\n  }\r\n  showSuccess(summary: string, detail: string,Iskey?:boolean,keepalive?:boolean): void {\r\n    //debugger\r\n\r\n    if(Iskey){\r\n      this.translate.get(detail).subscribe((content:any)=> {\r\n        this.translate.get(summary).subscribe((header:any)=> {\r\n          this.alertSubject.next({ severity: 'success', summary:header, detail:content,keepalive:keepalive});\r\n        });\r\n\r\n      });\r\n    }else{\r\n      //debugger\r\n      this.alertSubject.next({ severity: 'success', summary:summary, detail:detail,keepalive:keepalive });}\r\n\r\n  }\r\n  showWarn(summary: string, detail: string,Iskey:boolean,keepalive?:boolean): void {\r\n    if(keepalive){this.keepalive=keepalive}\r\n    if(Iskey){\r\n      this.translate.get(detail).subscribe((content:any)=> {\r\n        this.translate.get(summary).subscribe((header:any)=> {\r\n          this.alertSubject.next({ severity: 'warn', summary:header, detail:content,keepalive:keepalive});\r\n        });\r\n\r\n      });\r\n    }else{this.alertSubject.next({ severity: 'warn', summary:summary, detail:detail,keepalive:keepalive});}\r\n\r\n  }\r\n  showAll(messages:any) {\r\n\r\n    this.alertSubject.next(messages)\r\n  }\r\n  destroy() {\r\n    this.messageService.clear();\r\n  }\r\n}\r\n","import {Injectable, Renderer2, RendererFactory2} from \"@angular/core\";\r\nimport {LangChangeEvent, TranslateService} from \"@ngx-translate/core\";\r\nimport {PrimeNGConfig} from \"primeng/api\";\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class TranslationService {\r\n\r\n  renderer: Renderer2;\r\n\r\n  constructor(\r\n    private rootRenderer: RendererFactory2,\r\n    private translateService: TranslateService,\r\n    private primeNGConfig: PrimeNGConfig\r\n  ) {\r\n    this.renderer = this.rootRenderer.createRenderer(document.querySelector('html'), null);\r\n\r\n    this.translateService.onLangChange.subscribe((langChangeEvent: LangChangeEvent) => {\r\n      // this.renderer.setAttribute(document.querySelector('html'), 'lang', langChangeEvent.lang);\r\n      console.log(\"lang changed to\", langChangeEvent.lang)\r\n    })\r\n  }\r\n\r\n  setDefaultLanguage(language: string): void {\r\n    this.translateService.setDefaultLang(language);\r\n   // this.renderer.setAttribute(document.querySelector('html'), 'dir', 'rtl');\r\n  }\r\n\r\n  getCurrentLanguage(): string {\r\n    return this.translateService.currentLang;\r\n  }\r\n\r\n  useLanguage(language: string): void {\r\n    this.translateService.use(language);\r\n    this.translateService.get('primeng').subscribe(res => this.primeNGConfig.setTranslation(res));\r\n  }\r\n\r\n  translate(key: string) {\r\n    return new Promise(resolve => {\r\n      this.translateService.get(key).subscribe({\r\n        next: res => {\r\n          resolve(res);\r\n        }\r\n      });\r\n    })\r\n\r\n  }\r\n}\r\n","export class ValidatorRegex {\r\n  public static readonly  NUMBERREGEXP = /^\\d+$/;\r\n  public static readonly TEXTREGEXP =  /^[a-zA-Z0-9_.-]*$/ ;\r\n  public static readonly ALPHANUMREGEXP =  /^[a-zA-Z0-9_.-]*$/;\r\n}\r\n","export enum InputValidatorsEnum {\r\n  NUMBER = 1,\r\n  TEXT = 2,\r\n  BOOLEAN = 3,\r\n  EMAIL = 4,\r\n  ALPHANUM=5,\r\n}\r\n\r\n","import {Injectable} from \"@angular/core\";\r\n\r\nimport {ValidatorRegex} from \"./validator-regex\";\r\nimport {InputValidatorsEnum} from \"../component/dataTableModel/enum/InputValidatorsEnum\";\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class ManualValidatorService {\r\n\r\n  validateInputs(inputValidators: InputValidatorsEnum[], value: any): boolean {\r\n    for (let i = 0; i < inputValidators.length; i++) {\r\n      switch (inputValidators[i]) {\r\n        case InputValidatorsEnum.NUMBER:\r\n          if (isNaN(value) || !ValidatorRegex.NUMBERREGEXP.test(value)) {\r\n            return false;\r\n          }\r\n          break;\r\n        case InputValidatorsEnum.TEXT:\r\n          if (ValidatorRegex.TEXTREGEXP.test(value)) {\r\n            return false\r\n          }\r\n          break;\r\n      }\r\n    }\r\n    return true;\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { ElmCommonComponent } from './elm-common.component';\r\nimport {HttpCommonService} from \"./service/http-common.service\";\r\nimport {GMessagesService1} from \"./service/g-messages.service1\";\r\nimport {TranslationService} from \"./service/translation.service\";\r\nimport {ManualValidatorService} from \"./datatable/validators/manual-validator.service\";\r\nimport {GMessagesService} from \"./service/g-messages.service\";\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    ElmCommonComponent\r\n  ],\r\n  imports: [\r\n  ],\r\n  exports: [\r\n    ElmCommonComponent,\r\n  ],\r\n  providers: [\r\n    HttpCommonService,\r\n    GMessagesService1,\r\n    GMessagesService,\r\n    TranslationService,\r\n    ManualValidatorService\r\n  ]\r\n})\r\nexport class ElmCommonModule { }\r\n","import {Directive, ElementRef, Input, TemplateRef, ViewContainerRef} from '@angular/core';\r\n\r\n\r\n@Directive({\r\n  selector: '[hasPermission]'\r\n})\r\nexport class HasPermissionDirective {\r\n\r\n  @Input('hasPermission')\r\n  permsCode: any;\r\n\r\n\r\n  constructor(private el: ElementRef, private vcr: ViewContainerRef,\r\n              private tpl: TemplateRef<any>) {\r\n  }\r\n\r\n  ngOnInit() {\r\n    /*      let perms  = this.authService.userPermissions();\r\n          let length = perms.filter(item=> item==this.permsCode).length\r\n          let hasPermission = length>0;\r\n          this.vcr.clear();\r\n          if (hasPermission) {\r\n              this.vcr.createEmbeddedView(this.tpl);\r\n          }*/\r\n\r\n  }\r\n\r\n\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {HasPermissionDirective} from \"./has-permission.directive\";\r\n\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  declarations: [\r\n    HasPermissionDirective,\r\n  ],\r\n  exports: [\r\n    HasPermissionDirective,\r\n  ]\r\n})\r\nexport class HasPermissionModule {\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\nimport {TranslateService} from \"@ngx-translate/core\";\r\nimport {HttpClient} from \"@angular/common/http\";\r\nimport {Subject} from \"rxjs\";\r\nimport {InputDataModel} from \"../component/dataTableModel/InputDataModel\";\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class GDataTableService {\r\n  private reloadEvent = new Subject<any>();\r\n\r\n  get reload() {\r\n    return this.reloadEvent;\r\n  }\r\n\r\n  constructor(private httpClient: HttpClient,\r\n              private translate: TranslateService) {\r\n\r\n  }\r\n\r\n  loadData(inputDataModel: InputDataModel, datUrl: string, httpMethodForUrl: \"POST\" | \"GET\") {\r\n    if (httpMethodForUrl == \"POST\")\r\n      return this.httpClient.post<any>(datUrl, inputDataModel);\r\n    else\r\n      return this.httpClient.get<any>(datUrl);\r\n  }\r\n\r\n  refreshGDataTable() {\r\n    this.reloadEvent.next(1);\r\n  }\r\n\r\n  refreshGDataTableData() {\r\n    this.reloadEvent.next(2);\r\n  }\r\n\r\n}\r\n","export enum FilterOperationEnum {\r\n  GREATER_THAN = 'gt',\r\n  LESS_THAN = 'lt',\r\n  GREATER_THAN_EQUAL = 'gte',\r\n  LESS_THAN_EQUAL = 'lte',\r\n  NOT_EQUAL = 'not_equal',\r\n  EQUAL = 'equal',\r\n  MATCH = 'match',\r\n  MATCH_START = 'match_start',\r\n  MATCH_END = 'match_end',\r\n  IN_LONG_LIST = 'in_Long_List',\r\n  NOT_IN_LONG_LIST = 'not_in_Long_List',\r\n  BIT_CHECK = 'bit_check',\r\n  DAY_EQUAL = 'day_equal',\r\n  BIT_WISE_OPERATION = 'BitWiseOperations',\r\n  IS_NOT_NULL = 'is_not_null',\r\n  IS_NULL = 'is_null',\r\n  IN_STRING_LIST = 'in_String_List',\r\n  NOT_IN_STRING_LIST = 'not_in_String_List',\r\n  ASSIGNED_TO_ME = 'assigned_to_me',\r\n  DATE_GREATER_THAN = 'date_gt',\r\n  DATE_GREATER_THAN_EQUAL = 'dat_gte',\r\n  DATE_LESS_THAN = 'date_lt',\r\n  DATE_LESS_THAN_EQUAL = 'dat_lte'\r\n}\r\n","export module NumberFormaters {\r\n\r\n  // export function currencyFormatter(value: string): string {\r\n  //   var userLang = window.document.dir == \"rtl\" ? \"ar-sa\" : \"en-us\";\r\n  //   const arFormatter = new Intl.NumberFormat(\"en-us\", {\r\n  //     style: 'currency',\r\n  //     currency: 'SAR',\r\n  //     minimumFractionDigits: 1, // (this suffices for whole numbers, but will print 2500.10 as $2,500.1)\r\n  //     //maximumFractionDigits: 0, // (causes 2500.99 to be printed as $2,501)\r\n  //   });\r\n  //   return \"<span class='currencyValue'>\" + arFormatter.format(parseFloat(value)) + \"</span>\";\r\n  // }\r\n  // export function currencyFormatter(value: string): string {\r\n  //   const userLang = window.document.dir === \"rtl\" ? \"ar-sa\" : \"en-us\";\r\n  //   const isArabic = userLang === \"ar-sa\";\r\n  //\r\n  //   const formatter = new Intl.NumberFormat(\"en-us\", {\r\n  //     style: 'currency',\r\n  //     currency: 'SAR',\r\n  //     minimumFractionDigits: 1, // (this suffices for whole numbers, but will print 2500.10 as $2,500.1)\r\n  //     //maximumFractionDigits: 0, // (causes 2500.99 to be printed as $2,501)\r\n  //   });\r\n  //\r\n  //   if (value) {\r\n  //     let formattedValue = formatter.format(parseFloat(value));\r\n  //\r\n  //     // Adjust the currency symbol position\r\n  //     if (isArabic) {\r\n  //       formattedValue = `${formattedValue.replace(\"SAR\", \"\").trim()} ر.س`;\r\n  //     } else {\r\n  //       formattedValue = `${formattedValue.replace(\"SAR\", \"\").trim()} SAR`;\r\n  //     }\r\n  //\r\n  //     return `<span class='currencyValue'>${formattedValue}</span>`;\r\n  //   }\r\n  //\r\n  //   return `<span class='currencyValue'></span>`;\r\n  // }\r\n\r\n  export function currencyFormatter(value: string): string {\r\n    const userLang = window.document.dir === \"rtl\" ? \"ar-sa\" : \"en-us\";\r\n    const isArabic = userLang === \"ar-sa\";\r\n\r\n    const formatter = new Intl.NumberFormat(\"en-us\", {\r\n      style: 'currency',\r\n      currency: 'SAR',\r\n      minimumFractionDigits: 1, // (this suffices for whole numbers, but will print 2500.10 as $2,500.1)\r\n      //maximumFractionDigits: 0, // (causes 2500.99 to be printed as $2,501)\r\n    });\r\n\r\n    const currencySVG = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"18\" viewBox=\"0 0 16 18\" fill=\"none\" style=\"vertical-align: middle;\">\r\n    <path d=\"M16 14.6484C15.8943 15.5035 15.848 15.8745 15.4531 16.708L9.38965 17.96C9.52903 17.0591 9.71461 16.364 10.0166 15.9473L16 14.6484ZM7.55469 8.75195L9.36621 8.35938V2.63379C10.0413 1.87594 10.4566 1.53563 11.2715 1.10547V7.94531L16 6.91895C15.8943 7.7738 15.8478 8.14433 15.4531 8.97754L11.2715 9.86133V11.7852L16 10.7842C15.8943 11.6393 15.848 12.0102 15.4531 12.8438L11.2715 13.707V13.7246L9.36621 14.1182V10.2637L7.55469 10.6465V13.0762L7.52344 13.082C7.10672 13.8128 6.51827 14.6907 5.95117 15.3916L0 16.5254C0.0533615 15.7597 0.164479 15.3279 0.510742 14.5566L5.64941 13.4424V11.0498L0.886719 12.0576C0.940076 11.2919 1.05224 10.861 1.39844 10.0898L5.64941 9.16602V1.56836C6.32454 0.81051 6.73977 0.470197 7.55469 0.0400391V8.75195Z\" fill=\"black\"/>\r\n  </svg>`;\r\n\r\n    if (value) {\r\n      let formattedValue = formatter.format(parseFloat(value));\r\n\r\n      // Remove SAR and attach SVG depending on language\r\n      formattedValue = formattedValue.replace(\"SAR\", \"\").trim();\r\n\r\n      if (isArabic) {\r\n        formattedValue = `${formattedValue} ${currencySVG}`;\r\n      } else {\r\n        formattedValue = `${currencySVG} ${formattedValue}`;\r\n      }\r\n\r\n      return `<span class='currencyValue'>${formattedValue}</span>`;\r\n    }\r\n\r\n    return `<span class='currencyValue'></span>`;\r\n  }\r\n\r\n  export function rateFormatter(value: string): string {\r\n    let perValue = parseFloat(value);\r\n    if (isNaN(perValue))\r\n      return \"\";\r\n    let val = Math.fround(perValue / 20);\r\n    if (val > 5)\r\n      val = 5;\r\n    var resp = \"<div>\";\r\n    for (let i = 0; i < 5; i++) {\r\n      resp += \"<span class=\\\"rateStar \" + (i < val ? \"checked\" : \"\") + \"\\\">\" + (i < val ? \"★\" : \"☆\") + \"</span>\"\r\n    }\r\n    return resp + \"</div><div class=\\\"rateValue\\\">\" + (perValue).toFixed(0) + \"%</div>\"\r\n  }\r\n}\r\n","import {FilterOperationEnum} from \"./enum/FilterOperationEnum\";\r\nimport {InputValidatorsEnum} from \"./enum/InputValidatorsEnum\";\r\nimport {ColumnTypEnum} from \"./enum/ColumnTypEnum\";\r\nimport {Observable} from \"rxjs\";\r\nimport {DropdownModel} from \"../dropdown-model/DropdownModel\";\r\nimport {SeverityTypeEnum} from \"./enum/SeverityTypeEnum\";\r\nimport {BadgesSeverityColorsMap} from \"./BadgesSeverityColorsMap\";\r\nimport {NumberFormaters} from \"../Formatters/NumberFormaters\";\r\n\r\nexport class ColumnDefinition {\r\n  header: string;\r\n  field: string;\r\n  isStaticValue: boolean | undefined = false;\r\n  filterField: string;\r\n  sortField: string;\r\n  columnType: ColumnTypEnum;\r\n  filterOperation: string = FilterOperationEnum.EQUAL;\r\n  inputValidators: InputValidatorsEnum[] = [];\r\n  searchable: boolean;\r\n  sortable: boolean;\r\n  frozen: boolean = false;\r\n  dropDownOptions: DropdownModel[];\r\n  dropDownOptionsObs: Observable<DropdownModel[]>;\r\n  dropDwnOptionsUrl: string;\r\n  dropDwnOptionsFunc: Function;\r\n  dateFormat: string = 'dd/MM/yyyy';\r\n  columnName: string = '';\r\n  styleClass: string = '';\r\n  showBadgeColors: boolean = false;\r\n  badgeSeverityColumn: string;\r\n  badgesSeverityColorsMap: BadgesSeverityColorsMap[];\r\n  valueFormatter: Function;\r\n  toolTipField: string;\r\n  toolTipStaticValue: string;\r\n  bypassSecurityTrustHtml: boolean = false;\r\n\r\n\r\n  constructor(header: string, field: string, filterField: string, sortField: string, columnType: number, filterOperation: FilterOperationEnum, searchable: boolean, sortable: boolean, isStaticValue?: boolean) {\r\n    this.header = header;\r\n    this.field = field;\r\n    this.columnType = columnType;\r\n    this.searchable = searchable;\r\n    this.sortable = sortable;\r\n    this.filterOperation = filterOperation;\r\n    this.filterField = filterField;\r\n    this.sortField = sortField;\r\n    this.isStaticValue = isStaticValue;\r\n  }\r\n\r\n  withDropDownOptions(dropDownOptions: DropdownModel[]) {\r\n    this.dropDownOptions = dropDownOptions;\r\n    return this;\r\n  }\r\n\r\n  withValueFormater(formaterFunv: Function) {\r\n    this.valueFormatter = formaterFunv;\r\n    return this;\r\n  }\r\n\r\n  AsCurrency() {\r\n    this.bypassSecurityTrustHtml = true;\r\n    this.valueFormatter = NumberFormaters.currencyFormatter;\r\n    return this;\r\n  }\r\n\r\n  AsStarRate() {\r\n    this.valueFormatter = NumberFormaters.rateFormatter;\r\n    return this;\r\n  }\r\n\r\n  withDateFormat(dateFormat: string) {\r\n    this.dateFormat = dateFormat;\r\n    return this;\r\n  }\r\n\r\n  withColumnName(columnName: string) {\r\n    this.columnName = columnName;\r\n    return this;\r\n  }\r\n\r\n  withStyleClass(styleClass: string) {\r\n    this.styleClass = styleClass;\r\n    return this;\r\n  }\r\n\r\n  withInputValidators(inputValidators: InputValidatorsEnum[]) {\r\n    this.inputValidators = inputValidators;\r\n    return this;\r\n  }\r\n\r\n  withDropDwnOptionsUrl(dropDwnOptionsUrl: string) {\r\n    this.dropDwnOptionsUrl = dropDwnOptionsUrl;\r\n    return this;\r\n  }\r\n\r\n  useDropDwnOptionsFunc(dropDwnOptionsFunc: Function) {\r\n    this.dropDwnOptionsFunc = dropDwnOptionsFunc;\r\n    return this;\r\n  }\r\n\r\n  showsBadgeColors(showBadgeColors: boolean) {\r\n    this.showBadgeColors = showBadgeColors;\r\n    return this;\r\n  }\r\n\r\n  withBadgesSeverityColorsMap(badgesSeverityColorsMap: { value: any, severityColor: SeverityTypeEnum }[]) {\r\n    this.badgesSeverityColorsMap = badgesSeverityColorsMap;\r\n    return this;\r\n  }\r\n\r\n  withBadgeSeverityColumn(badgeSeverityColumn: string) {\r\n    this.badgeSeverityColumn = badgeSeverityColumn;\r\n    return this;\r\n  }\r\n\r\n  isFrozenColumn(frozen: boolean) {\r\n    this.frozen = frozen;\r\n    return this;\r\n  }\r\n\r\n  withToolTipField(toolTipField: string) {\r\n    this.toolTipField = toolTipField;\r\n    return this;\r\n  }\r\n\r\n  withToolTipStaticValue(toolTipStaticValue: string) {\r\n    this.toolTipStaticValue = toolTipStaticValue;\r\n    return this;\r\n  }\r\n\r\n  withBypassSecurityTrustHtml(bypassSecurityTrustHtml: boolean) {\r\n    this.bypassSecurityTrustHtml = bypassSecurityTrustHtml;\r\n    return this;\r\n  }\r\n}\r\n","export class FilterCriteria {\r\n    public  propertyName:string;\r\n    public operation:string;\r\n    public propertyValue:any;\r\n\r\n    constructor(propertyName: string, propertyValue: any, operation: string) {\r\n        this.propertyName = propertyName;\r\n        this.operation = operation;\r\n        this.propertyValue=propertyValue;\r\n    }\r\n}\r\n","export class SortCriteria {\r\n  public propertyName: string | string[] | null | undefined;\r\n  public orderDir: \"asc\"|\"desc\";\r\n\r\n  constructor(propertyName: string | string[] , sortOrder: \"asc\"|\"desc\") {\r\n    this.propertyName = propertyName;\r\n    this.orderDir = sortOrder;\r\n  }\r\n\r\n}\r\n","import {FilterCriteria} from './FilterCriteria';\r\nimport {SortCriteria} from './SortCriteria';\r\n\r\nexport class InputDataModel  {\r\n           filterList: Array<FilterCriteria> ; // the filter list for specifications\r\n           limit :number|undefined=10;    // limit\r\n           offset:number|undefined=1;  //  offset\r\n           sortColumn: SortCriteria|null ; // the filter list for specifications\r\n           sortCriteria: Array<SortCriteria> ; // the filter list for specifications\r\n\r\n\r\n\r\n    constructor(filterList: Array<FilterCriteria>, limit: number|undefined, offset: number|undefined,sortCriteria:SortCriteria|null,sortCriteriaList:Array<SortCriteria>) {\r\n        this.filterList = filterList;\r\n        this.limit = limit;\r\n        this.offset = offset;\r\n        this.sortColumn=sortCriteria;\r\n        this.sortCriteria=sortCriteriaList;\r\n    }\r\n}\r\n","import {GenericCondition} from \"./GenericCondition\";\r\n\r\nexport class ActionListDet {\r\n  function: Function;\r\n  name: string;\r\n  color: string;\r\n  icon: string;\r\n  actionHoverToolTipKey: string;\r\n  isFlatAction: boolean = false;\r\n  hasPermission: boolean = true;\r\n  renderConditions: GenericCondition[]; // consider as Complex -- need a new Simple Generic Objects with AND\r\n\r\n  constructor(name: string, color: string, icon: string, f: Function, isFlatAction?: boolean, actionHoverMsgKey?: string) {\r\n    this.color = color;\r\n    this.function = f;\r\n    this.name = name;\r\n    this.icon = icon;\r\n    this.isFlatAction = isFlatAction ? isFlatAction : false;\r\n    this.actionHoverToolTipKey = actionHoverMsgKey ? actionHoverMsgKey : '';\r\n  }\r\n\r\n  withRenderConditions(renderConditions: GenericCondition[]) {\r\n    this.renderConditions = renderConditions;\r\n    return this;\r\n  }\r\n\r\n  checkPermission(hasPermission: boolean) {\r\n    this.hasPermission = hasPermission;\r\n    return this;\r\n  }\r\n}\r\n","import {SeverityTypeEnum} from \"./enum/SeverityTypeEnum\";\r\n\r\nexport class BadgesSeverityColorsMap{\r\n  value: any;\r\n  severityColor: SeverityTypeEnum;\r\n}\r\n","export enum ConditionOperatorsEnum {\r\n  START_BRACKET = '(',\r\n  END_BRACKET = ')',\r\n  EQUAL = '==',\r\n  NOTEQUAL = '!==',\r\n  GT = '>',\r\n  LT = '<',\r\n  GTE = '>=',\r\n  LTE = '<=',\r\n  AND = '&&',\r\n  OR = '||',\r\n  LIST_INCLUDE = 'LIST_INCLUDE',\r\n}\r\n","import {ConditionOperatorsEnum} from \"./enum/ConditionOperatorsEnum\";\r\n\r\nexport class GenericCondition {\r\n  startBracket?:ConditionOperatorsEnum ;\r\n  field: string;\r\n  operator: ConditionOperatorsEnum;\r\n  value: any ;\r\n  nextOperator?:ConditionOperatorsEnum ;\r\n  endBracket?:ConditionOperatorsEnum;\r\n\r\n\r\n  constructor(field: string, operator: ConditionOperatorsEnum, value: any) {\r\n    this.field = field;\r\n    this.operator = operator;\r\n    this.value = value;\r\n  }\r\n\r\n  withStartBracket() {\r\n    this.startBracket = ConditionOperatorsEnum.START_BRACKET;\r\n    return this;\r\n  }\r\n  withEndBracket() {\r\n    this.endBracket = ConditionOperatorsEnum.END_BRACKET;\r\n    return this;\r\n  }\r\n  withNextOperator(nextOperator:ConditionOperatorsEnum ) {\r\n    this.nextOperator = nextOperator;\r\n    return this;\r\n  }\r\n}\r\n","export class PaginatorProperties {\r\n  pageSize: number = 10;\r\n  selectedPaginatorOption: number = 10;\r\n  firstRowIndex: number = 0;\r\n  showCurrentPageReport: boolean = true;\r\n  currentPageReportTemplate = \"{first} - {last} : {totalRecords}\";\r\n  pageReportMsg: string = 'pageReportMsg';\r\n  defaultPaginatorOptions: number[] = [10, 20, 40, 50, 100, 150, 200, 250, 300, 500];\r\n  customPaginatorOptions: { label: number, value: number }[] = [\r\n    {label: 10, value: 10},\r\n    {label: 20, value: 20},\r\n    {label: 40, value: 40},\r\n    {label: 50, value: 50},\r\n    {label: 100, value: 100},\r\n    {label: 150, value: 150},\r\n    {label: 200, value: 200},\r\n    {label: 250, value: 250},\r\n    {label: 300, value: 300},\r\n    {label: 500, value: 500}\r\n  ];\r\n  totalRecords: number = 0;\r\n  paginatorLocale: string;\r\n}\r\n","export enum ActionRenderTypeEnum {\r\n     SEPERATED = 1,\r\n     TOGGLE= 2,\r\n}\r\n","export enum ResponsiveLayoutEnum {\r\n  SCROLL = \"scroll\",\r\n  STACK = \"stack\"\r\n\r\n\r\n}\r\n","import {PaginatorProperties} from \"./PaginatorProperties\";\r\nimport {ActionListDet} from \"../component/dataTableModel/ActionListDet\";\r\nimport {ColumnDefinition} from \"../component/dataTableModel/ColumnDefinition\";\r\nimport {FilterCriteria} from \"../component/dataTableModel/FilterCriteria\";\r\nimport {SortCriteria} from \"../component/dataTableModel/SortCriteria\";\r\nimport {ActionRenderTypeEnum} from \"../component/dataTableModel/enum/ActionRenderTypeEnum\";\r\nimport {ResponsiveLayoutEnum} from \"../component/dataTableModel/enum/ResponsiveLayoutEnum\";\r\nimport {GenericCondition} from \"../component/dataTableModel/GenericCondition\";\r\nimport {ColumnTypEnum} from \"../component/dataTableModel/enum/ColumnTypEnum\";\r\n\r\n\r\nexport class GTableProperties {\r\n  tableId: string = 'g-table-id';\r\n  tableScrollHeight: string = '50rem'\r\n  readonly lazy: boolean = true;\r\n  loading: boolean = true; // to start spinner\r\n  responsiveLayout: ResponsiveLayoutEnum = ResponsiveLayoutEnum.SCROLL;\r\n  cacheFilter: boolean = true;\r\n  storageType: 'session' | 'local' = 'session';\r\n  cacheTableData: boolean = false;\r\n  clearTableCacheOnReload: boolean = false;\r\n  readonly cacheTableKey: string;\r\n  readonly cacheTableDataKey: string;\r\n  readonly cacheTablePagesKey: string;\r\n  readonly cacheTableSelectedRowsKey: string;\r\n  showTableCaption: boolean = false;\r\n  tableCaption: string = \"\";\r\n  showConfigColumnsView: boolean = true;\r\n  exportExcel: boolean = true;\r\n  exportPdf: boolean = true;\r\n  exportPdFontFileConfig: {\r\n    postScriptName: string,\r\n    id: string,\r\n    fontStyle: string,\r\n    fontWeight?: string | number,\r\n    encoding?: | \"StandardEncoding\" | \"MacRomanEncoding\" | \"Identity-H\" | \"WinAnsiEncoding\",\r\n    isStandardFont?: boolean\r\n  } = {\r\n    postScriptName: 'assets/fonts/Amiri-Regular.ttf',\r\n    id: 'Amiri',\r\n    fontStyle: 'normal'\r\n  };\r\n  showRefreshButton: boolean = true;\r\n  exportFileName: string;\r\n  sheetsNames: string[] = ['data'];\r\n  private exportColumns: {\r\n    title: string,\r\n    dataKey: string,\r\n    columnType: ColumnTypEnum,\r\n    dateFormat: string,\r\n  }[];\r\n  exportColumnsInput: {\r\n    title: string,\r\n    dataKey: string,\r\n    columnType: ColumnTypEnum,\r\n    dateFormat: string,\r\n    titleIsTransKey: boolean\r\n  }[];\r\n  private exportHeaders: string[];\r\n  private defaultExportableCSV: boolean = false;\r\n  private showGlobalSearchable: boolean = false;\r\n  private globalFilterFields: string[] = [];\r\n  private showTableActions: boolean = false;\r\n  tableActionsLabel: string;\r\n  tableActions: ActionListDet[] = [];\r\n  multiSelection: boolean = false;\r\n  withManualHandleSelectAllMode: boolean = false;\r\n  selectionKey: string = \"id\";\r\n  selectedRows: any[] = [];\r\n  allSelectedRows: any[] = [];\r\n  disableSelectionConditions: GenericCondition[];\r\n  disableSelectAll: boolean = false;\r\n  hideSelectAll: boolean = false;\r\n  columns: ColumnDefinition[] = [];\r\n  private _shownColumns: ColumnDefinition[] = [];\r\n  translatedColumns: ColumnDefinition[] = [];\r\n  dataApiUrl: string = \"\";\r\n  exportDataApiUrl: string;\r\n  httpMethodForUrl: 'POST' | 'GET' = 'POST';\r\n  defaultCriteriaFilters: FilterCriteria[] = [];\r\n  defaultSortCriteria: SortCriteria | null = null;\r\n  rowsData: any[] = [];\r\n  showRowActions: boolean = false;\r\n  rowActions: ActionListDet[] = [];\r\n  private flatRowActions: ActionListDet[] = [];\r\n  private dropDownRowActions: ActionListDet[] = [];\r\n  private rowActionsRenderType: ActionRenderTypeEnum = ActionRenderTypeEnum.TOGGLE;\r\n  readonly useDefaultPaginator: boolean = true;\r\n  paginatorProperties: PaginatorProperties = new PaginatorProperties();\r\n  reloadGDataTable: () => void;\r\n  refreshGTableData: () => void;\r\n  clearAllSelectedRows: () => void;\r\n  pushToAllSelectedRows: (rowOrRows: any | any[]) => void;\r\n  refreshAllSelectedRows: () => void;\r\n  syncPageSelectedRowsToAllSelectedRows: () => void;\r\n  pageLinksSize: number = 10;\r\n\r\n  constructor(uniqueTableId: string) {\r\n    this.tableId = uniqueTableId;\r\n    this.cacheTableKey = uniqueTableId;\r\n    this.cacheTableDataKey = uniqueTableId + 'data';\r\n    this.cacheTablePagesKey = uniqueTableId + 'paging';\r\n    this.cacheTableSelectedRowsKey = uniqueTableId + 'selectedRows';\r\n  }\r\n\r\n  get shownColumns(): ColumnDefinition[] {\r\n    return this._shownColumns;\r\n  }\r\n\r\n  set shownColumns(val: ColumnDefinition[]) {\r\n    //restore original order\r\n    this._shownColumns = this.columns.filter((col) => val.includes(col));\r\n  }\r\n\r\n  get flatRowsActions() {\r\n    return this.rowActions.filter((obj: ActionListDet) => obj.isFlatAction)\r\n  }\r\n\r\n  get dropDownRowsAction() {\r\n    return this.rowActions.filter((obj: ActionListDet) => !obj.isFlatAction)\r\n  }\r\n\r\n  set exportedColumns(exportColumns: {\r\n    title: string,\r\n    dataKey: string,\r\n    columnType: ColumnTypEnum,\r\n    dateFormat: string,\r\n  }[]) {\r\n    this.exportColumns = exportColumns\r\n  }\r\n\r\n  get exportedColumns() {\r\n    return this.exportColumns;\r\n  }\r\n\r\n  set exportedHeaders(exportHeaders: string[]) {\r\n    this.exportHeaders = exportHeaders;\r\n  }\r\n\r\n  get exportedHeaders() {\r\n    return this.exportHeaders;\r\n  }\r\n}\r\n","export enum ColumnTypEnum {\r\n    TEXT = 1,\r\n    DROPDOWN = 2,\r\n    DATE_Hij = 3,\r\n    DATE_GRE = 4,\r\n    MULTI_LINES_TEXT = 5,\r\n    DROPDOWN_MULTI = 6,\r\n    DROPDOWN_MULTI_SEARCHABLE = 7,\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({name: 'hijriFormat'})\r\nexport class HijriFormatPipe implements PipeTransform {\r\n  transform(value: number): string {\r\n    let strValue='';\r\n    if (value) {\r\n      let dateValue=value.toString();\r\n      (dateValue.length<8)?dateValue='0'+dateValue:null;\r\n      let day =dateValue.substring(6, 8);\r\n      let month = dateValue.substring(4, 6);\r\n      let  year= dateValue.substring(0, 4);\r\n      strValue = day + \"-\" + month + \"-\" + year;\r\n\r\n    }\r\n    return strValue;\r\n  }\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {HijriFormatPipe} from \"./HijriFormatPipe\";\r\n\r\n\r\n@NgModule({\r\n    imports: [\r\n\r\n    ],\r\n    declarations: [\r\n    HijriFormatPipe,\r\n\r\n    ],\r\n    exports: [\r\n        HijriFormatPipe,\r\n\r\n    ]\r\n})\r\nexport class HijriFormatPipeModule{ }\r\n","import {Injectable} from \"@angular/core\";\r\nimport {NgbDatepickerI18n, NgbDateStruct} from \"@ng-bootstrap/ng-bootstrap\";\r\nimport {TranslateService} from \"@ngx-translate/core\";\r\nimport {TranslationWidth} from \"@angular/common\";\r\n\r\nconst WEEKDAYS = ['اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعه', 'سبت', 'أحد'];\r\nconst MONTHS = ['محرم', 'صفر', 'ربيع الأول', 'ربيع الآخر', 'جمادى الأولى', 'جمادى الآخرة', 'رجب', 'شعبان', 'رمضان', 'شوال', 'ذو القعدة', 'ذو الحجة',];\r\nconst WEEKDAYSEN = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\r\nconst MONTHSEN = ['Muh', 'Saf', 'Rab1', 'Rab2', 'Jum1', 'Jum2', 'Raj', 'Sha', 'Ram', 'Shaw', 'DhuQ', 'DhuH']\r\n\r\n@Injectable()\r\nexport class IslamicI18n extends NgbDatepickerI18n {\r\n  constructor(private translateService: TranslateService) {\r\n    super();\r\n  }\r\n\r\n  getWeekdayLabel(weekday: number, width?: TranslationWidth | undefined): string {\r\n    if (this.translateService.currentLang.includes('ar')) {\r\n      return WEEKDAYS[weekday - 1]\r\n    } else {\r\n      return WEEKDAYSEN[weekday - 1];\r\n    }\r\n\r\n  }\r\n\r\n  getMonthShortName(month: number) {\r\n    if (this.translateService.currentLang.includes('ar')) {\r\n      return MONTHS[month - 1];\r\n    } else {\r\n      return MONTHSEN[month - 1];\r\n    }\r\n  }\r\n  getMonthFullName(month: number) {\r\n    if (this.translateService.currentLang.includes('ar')) {\r\n      return MONTHS[month - 1];\r\n    } else {\r\n      return MONTHSEN[month - 1];\r\n    }\r\n  }\r\n\r\n  getWeekdayShortName(weekday: number) {\r\n    if (this.translateService.currentLang.includes('ar')) {\r\n      return WEEKDAYS[weekday - 1]\r\n    } else {\r\n      return WEEKDAYSEN[weekday - 1];\r\n    }\r\n  }\r\n\r\n  getDayAriaLabel(date: NgbDateStruct): string {\r\n    return `${date.day}-${date.month}-${date.year}`;\r\n  }\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\nimport {NgbDateAdapter, NgbDateStruct} from \"@ng-bootstrap/ng-bootstrap\";\r\n\r\n@Injectable()\r\nexport class CustomAdapter extends NgbDateAdapter<number> {\r\n  fromModel(value: number | null): NgbDateStruct | null {\r\n    if (value) {\r\n      return {\r\n        day: parseInt(value.toString().substring(6, 8)),\r\n        month: parseInt(value.toString().substring(4, 6)),\r\n        year: parseInt(value.toString().substring(0, 4)),\r\n      };\r\n    }\r\n    return null;\r\n  }\r\n\r\n  toModel(date: NgbDateStruct | null): number | null {\r\n    if(date){\r\n      let yearStr = date.year+'';\r\n      let monthStr = date.month < 10 ? '0' + date.month : date.month+'';\r\n      let dayStr = date.day < 10 ? '0' + date.day : date.day+'';\r\n      return parseInt(yearStr+monthStr+dayStr);\r\n    }else\r\n      return null;\r\n\r\n  }\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\nimport {NgbDateParserFormatter, NgbDateStruct} from \"@ng-bootstrap/ng-bootstrap\";\r\n\r\n@Injectable()\r\nexport class CustomDateParserFormatter extends NgbDateParserFormatter {\r\n\r\n  parse(value: string): any {\r\n    if (value === '') {\r\n      return null;\r\n    }\r\n\r\n    const date: NgbDateStruct = {\r\n      day: parseInt(value.toString().substring(6, 8)),\r\n      month: parseInt(value.toString().substring(4, 6)),\r\n      year: parseInt(value.toString().substring(0, 4))\r\n    };\r\n\r\n    return date;\r\n  }\r\n\r\n  format(date: NgbDateStruct): string {\r\n    if (date === null) {\r\n      return '';\r\n    }\r\n    const dayString: string = date.day < 10 ? `0${date.day}` : `${date.day}`;\r\n    const monthString: string = date.month < 10 ? `0${date.month}` : `${date.month}`;\r\n\r\n    const dateString = `${dayString}-${monthString}-${date.year}`\r\n\r\n\r\n    return dateString;\r\n  }\r\n}\r\n","import {NgClass, NgForOf, NgIf} from '@angular/common';\r\nimport {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {\r\n  NgbCalendar,\r\n  NgbCalendarIslamicUmalqura, NgbDate,\r\n  NgbDateAdapter,\r\n  NgbDateParserFormatter,\r\n  NgbDatepickerI18n, NgbDateStruct,\r\n  NgbModule,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport {TranslateModule, TranslateService} from \"@ngx-translate/core\";\r\nimport {PaginatorModule} from \"primeng/paginator\";\r\nimport {InputTextModule} from \"primeng/inputtext\";\r\nimport {ReactiveFormsModule} from \"@angular/forms\";\r\nimport {IslamicI18n} from \"../service/IslamicI18n\";\r\nimport {CustomAdapter} from \"../service/CustomAdapter\";\r\nimport {CustomDateParserFormatter} from \"../service/CustomDateParserFormatter\";\r\n\r\n@Component({\r\n  selector: 'gng-hijri-calendar',\r\n  templateUrl: './ng-datepicker-hijri.component.html',\r\n  styleUrls: ['./ng-datepicker-hijri.component.scss'],\r\n  standalone: true,\r\n  providers: [\r\n    {provide: NgbCalendar, useClass: NgbCalendarIslamicUmalqura},\r\n    {provide: NgbDatepickerI18n, useClass: IslamicI18n},\r\n    {provide: NgbDateAdapter, useClass: CustomAdapter},\r\n    {provide: NgbDateParserFormatter, useClass: CustomDateParserFormatter},\r\n    CustomAdapter\r\n  ],\r\n  imports: [NgbModule, PaginatorModule, InputTextModule, TranslateModule, NgIf, ReactiveFormsModule, NgClass, NgForOf]\r\n})\r\nexport class NgDatepickerHijriComponent implements OnInit {\r\n  @Input() value!: any;\r\n  @Output() valueChange = new EventEmitter<number>();\r\n  @Input() showButton: boolean = false;\r\n  @Input() label: string;\r\n  @Input() labelText: string;\r\n  @Input() labelFontWeight: string | number = '500';\r\n  @Input() required: boolean = false;\r\n  @Input() startDate: number = 13600101;\r\n  @Input() endDate: number = 15001230;\r\n  @Input() hint: string;\r\n  @Input() customValidationsKeys: string[];\r\n  @Input() placeholder:string;\r\n  @Input() patternErrorMessage: string;\r\n  @Input() disabled: boolean = false;\r\n  @Input() disabledHijriDateDates: number[] = [];\r\n  @Input() enabledHijriDateDates: number[] = [];\r\n  minDate: NgbDateStruct | null;\r\n  maxDate: NgbDateStruct | null;\r\n\r\n  constructor(private _customAdapter: CustomAdapter) {\r\n  }\r\n\r\n  onDateSelect(event: any) {\r\n    const year = event.year+'';\r\n    const month = event.month < 10 ? '0' + event.month : event.month+'';\r\n    const day = event.day < 10 ? '0' + event.day : event.day+'';\r\n    const finalDate = year + month + day;\r\n    this.valueChange.emit(parseInt(finalDate));\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.minDate = this._customAdapter.fromModel(this.startDate);\r\n    this.maxDate = this._customAdapter.fromModel(this.endDate);\r\n  }\r\n\r\n  disableHijriDates(date: NgbDate, current?: { year: number, month: number }): boolean {\r\n    // Format the date as YYYYMMDD\r\n    const yearStr = date.year.toString();\r\n    const monthStr = date.month < 10 ? '0' + date.month : date.month.toString();\r\n    const dayStr = date.day < 10 ? '0' + date.day : date.day.toString();\r\n    const hijriDate = parseInt(yearStr + monthStr + dayStr);\r\n\r\n    // Check if the date is explicitly disabled\r\n    if (this.disabledHijriDateDates && this.disabledHijriDateDates.length > 0) {\r\n      const isDisabled = this.disabledHijriDateDates?.some(\r\n        (disabledDate: number) => disabledDate === hijriDate\r\n      );\r\n\r\n      if (isDisabled) {\r\n        return true;  // Explicitly disabled\r\n      }\r\n    }\r\n\r\n    // Check if the date is explicitly enabled\r\n    if (this.enabledHijriDateDates && this.enabledHijriDateDates.length > 0) {\r\n      const isEnabled = this.enabledHijriDateDates?.some(\r\n        (enabledDate: number) => enabledDate === hijriDate\r\n      );\r\n      // Disable if not explicitly enabled\r\n      return !isEnabled;\r\n    }\r\n    return false;\r\n  }\r\n\r\n}\r\n","<label>{{ label ? (label | translate) : labelText }}\r\n  <span *ngIf=\"required\"\r\n        [ngClass]=\"{\r\n        'error1':  dbf.touched && !value,\r\n        'default-color': value\r\n        }\">\r\n    *\r\n  </span>\r\n</label>\r\n<div class=\"input-group\">\r\n  <span class=\"p-input-icon-right\">\r\n  <i class=\"fa fa-calendar-alt d-flex justify-content-center align-items-center\" #hcIcon></i>\r\n  <input\r\n    type=\"text\" pInputText\r\n    class=\"inputText formInput\"\r\n    [placeholder]=\"placeholder ? (placeholder|translate) : 'yyyy-mm-dd'\"\r\n    [(ngModel)]=\"value\"\r\n    [readOnly]=\"true\"\r\n    (dateSelect)=\"onDateSelect($event)\"\r\n    [firstDayOfWeek]=\"7\"\r\n    [disabled]=\"disabled\"\r\n    ngbDatepicker\r\n    #dp=\"ngbDatepicker\"\r\n    [minDate]=\"minDate!\"\r\n    [maxDate]=\"maxDate!\"\r\n    (click)=\"dp.toggle()\"\r\n    #dbf=\"ngModel\"\r\n    [markDisabled]=\"disableHijriDates.bind(this)\"\r\n  />\r\n  </span>\r\n\r\n  <button *ngIf=\"showButton\" class=\"btn btn-outline-secondary d-flex justify-content-center align-items-center\"\r\n          (click)=\"dp.toggle()\" type=\"button\">\r\n    <img src=\"content/images/1814093-20.png\" alt=\"\"/>\r\n  </button>\r\n\r\n  <div *ngIf=\"dbf.touched && dbf.errors && dbf.errors['required']\"\r\n       class=\"error\">\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n      <path\r\n        d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n        fill=\"#B42318\"/>\r\n      <path\r\n        d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n        fill=\"#B42318\"/>\r\n      <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n            d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n            fill=\"#B42318\"/>\r\n    </svg>\r\n    {{ 'requiredErrorMessage' | translate }}\r\n  </div>\r\n\r\n  <div *ngIf=\"dbf.touched && required && !value\"\r\n       class=\"error\">\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n      <path\r\n        d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n        fill=\"#B42318\"/>\r\n      <path\r\n        d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n        fill=\"#B42318\"/>\r\n      <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n            d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n            fill=\"#B42318\"/>\r\n    </svg>\r\n    {{ 'requiredErrorMessage' | translate }}\r\n  </div>\r\n\r\n  <div *ngIf=\"dbf.touched && dbf.errors && dbf.errors['pattern']\"\r\n       class=\"error\">\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n      <path\r\n        d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n        fill=\"#B42318\"/>\r\n      <path\r\n        d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n        fill=\"#B42318\"/>\r\n      <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n            d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n            fill=\"#B42318\"/>\r\n    </svg>\r\n    {{ patternErrorMessage || 'genericErrorMsg' | translate }}\r\n  </div>\r\n  <ng-container *ngIf=\"customValidationsKeys\">\r\n    <div *ngFor=\"let key of customValidationsKeys\">\r\n      <div *ngIf=\"dbf.touched && dbf.errors && dbf.errors[key]\"\r\n           class=\"error\">\r\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n          <path\r\n            d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n            fill=\"#B42318\"/>\r\n          <path\r\n            d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n            fill=\"#B42318\"/>\r\n          <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n                d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n                fill=\"#B42318\"/>\r\n        </svg>\r\n        {{ dbf.errors[key] | translate }}\r\n      </div>\r\n    </div>\r\n  </ng-container>\r\n  <div class=\"mat-hint mb-2\" *ngIf=\"hint\">\r\n    {{ hint|translate }}<span>&nbsp;</span>\r\n  </div>\r\n</div>\r\n","export enum SeverityTypeEnum {\r\n  PRIMARY = \"primary\",\r\n  SUCCESS = \"success\",\r\n  WARNING = \"warning\",\r\n  DANGER = \"danger\",\r\n  INFO = \"info\",\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\nimport {HttpClient} from \"@angular/common/http\";\r\nimport {Observable} from \"rxjs\";\r\nimport {DropdownModel} from \"../datatable/component/dropdown-model/DropdownModel\";\r\n\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class DropdownService {\r\n  constructor(private httpClient: HttpClient) {\r\n  }\r\n\r\n  loadDropDownData(url:string):Observable<DropdownModel[]>{\r\n    return this.httpClient.get<DropdownModel[]>(url);\r\n  }\r\n\r\n  loadDropDownStatusData(url:string):Observable<DropdownModel[]>{\r\n    return this.httpClient.get<DropdownModel[]>(url);\r\n  }\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\nimport {LangChangeEvent, TranslateService} from \"@ngx-translate/core\";\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class TranslationService {\r\n\r\n\r\n  constructor(\r\n    private translateService: TranslateService,\r\n  ) {\r\n  }\r\n\r\n  setDefaultLanguage(language: string): void {\r\n    this.translateService.setDefaultLang(language);\r\n  }\r\n\r\n  getCurrentLanguage(): string {\r\n    return this.translateService.currentLang;\r\n  }\r\n\r\n  useLanguage(language: string): void {\r\n    this.translateService.use(language);\r\n  }\r\n\r\n  translate(key: string) {\r\n    return new Promise(resolve => {\r\n      this.translateService.get(key).subscribe({\r\n        next: res => {\r\n          resolve(res);\r\n        }\r\n      });\r\n    })\r\n  }\r\n\r\n   getTranslation(key: string) {\r\n    return this.translateService.instant(key);\r\n  }\r\n}\r\n","import {\r\n  ChangeDetectorRef,\r\n  Component,\r\n  EventEmitter,\r\n  Input,\r\n  OnDestroy,\r\n  OnInit,\r\n  Output,\r\n  QueryList,\r\n  ViewChild,\r\n  ViewChildren\r\n} from '@angular/core';\r\n\r\nimport {ColumnFilter, Table, TableLazyLoadEvent, TableModule} from \"primeng/table\";\r\nimport {GDataTableService} from \"../service/GDataTableService\";\r\nimport {FilterMetadata, MessageService} from \"primeng/api\";\r\nimport {GTableProperties} from \"../model/GTableProperties\";\r\nimport {FilterCriteria} from \"./dataTableModel/FilterCriteria\";\r\nimport {SortCriteria} from \"./dataTableModel/SortCriteria\";\r\nimport {ColumnTypEnum} from \"./dataTableModel/enum/ColumnTypEnum\";\r\nimport {InputDataModel} from \"./dataTableModel/InputDataModel\";\r\nimport {ColumnDefinition} from \"./dataTableModel/ColumnDefinition\";\r\nimport {GenericCondition} from \"./dataTableModel/GenericCondition\";\r\nimport {DropdownModel} from \"./dropdown-model/DropdownModel\";\r\nimport {ManualValidatorService} from \"../validators/manual-validator.service\";\r\nimport {GMessagesService} from \"../../service/g-messages.service\";\r\nimport {DropdownService} from \"../../service/dropdown.service\";\r\nimport {DatePipe, NgClass, NgForOf, NgIf, NgOptimizedImage, NgStyle} from \"@angular/common\";\r\nimport {LangChangeEvent, TranslateModule, TranslateService} from \"@ngx-translate/core\";\r\nimport {MultiSelectModule} from \"primeng/multiselect\";\r\nimport {PaginatorModule} from \"primeng/paginator\";\r\nimport {ToastModule} from \"primeng/toast\";\r\nimport {HijriFormatPipeModule} from \"../../pipe/HijriDateFormat/HijriFormatPipe.module\";\r\nimport {DividerModule} from \"primeng/divider\";\r\nimport {TagModule} from \"primeng/tag\";\r\nimport {NgbDropdownModule} from \"@ng-bootstrap/ng-bootstrap\";\r\nimport {FilterOperationEnum} from \"./dataTableModel/enum/FilterOperationEnum\";\r\nimport {NgDatepickerHijriComponent} from \"../../inputs/hijri-calendars/ng-hijri-calendar/ng-datepicker-hijri.component\";\r\nimport {CalendarModule} from \"primeng/calendar\";\r\nimport {ActionListDet} from \"./dataTableModel/ActionListDet\";\r\nimport * as FileSaver from 'file-saver';\r\nimport {TranslationService} from \"../../directive/translation/translation.service\";\r\nimport {SeverityTypeEnum} from \"./dataTableModel/enum/SeverityTypeEnum\";\r\nimport {Subscription} from \"rxjs\";\r\nimport {HijriFormatPipe} from \"../../pipe/HijriDateFormat/HijriFormatPipe\";\r\nimport {TooltipModule} from \"primeng/tooltip\";\r\nimport {ConditionOperatorsEnum} from \"./dataTableModel/enum/ConditionOperatorsEnum\";\r\nimport {DomSanitizer} from \"@angular/platform-browser\";\r\n\r\n@Component({\r\n  selector: 'g-datatable',\r\n  templateUrl: './g-datatable.component.html',\r\n  styleUrls: ['./g-datatable.component.scss'],\r\n  standalone: true,\r\n  imports: [\r\n    TranslateModule,\r\n    TableModule,\r\n    MultiSelectModule,\r\n    PaginatorModule,\r\n    NgDatepickerHijriComponent,\r\n    ToastModule,\r\n    HijriFormatPipeModule,\r\n    DividerModule,\r\n    TagModule,\r\n    NgbDropdownModule,\r\n    NgForOf,\r\n    DatePipe,\r\n    NgIf,\r\n    CalendarModule,\r\n    NgStyle,\r\n    NgClass,\r\n    TooltipModule,\r\n    NgOptimizedImage\r\n  ],\r\n  providers: [MessageService, GDataTableService, GMessagesService, HijriFormatPipe, DatePipe]\r\n})\r\nexport class GDatatableComponent implements OnInit, OnDestroy {\r\n  // Table Element\r\n  @ViewChild('dataTable', {static: true}) dataTable: Table;\r\n  // Filter Element\r\n  private columnFilters: QueryList<ColumnFilter>;\r\n\r\n  @ViewChildren('columnFilter') set columnFilterElement(columnFilters: QueryList<ColumnFilter>) {\r\n    if (columnFilters)\r\n      this.columnFilters = columnFilters;\r\n  }\r\n\r\n// Inputs\r\n  @Input() tableProperties: GTableProperties = new GTableProperties('g-table-id');\r\n  @Output() onStartLazyLoadEvent = new EventEmitter<any>();\r\n  @Output() onDataFetchedLazyLoadEvent = new EventEmitter<any>();\r\n  @Output() onPreparedRequestLazyLoadEvent = new EventEmitter<any>();\r\n  @Output() onSelectAllEvent = new EventEmitter<any>();\r\n  @Output() onRowSelectEvent = new EventEmitter<any>();\r\n  @Output() onRowUnselectEvent = new EventEmitter<any>();\r\n  //Variables\r\n  filtersCriteriaArr: FilterCriteria[] = [];\r\n  sortCriteriaArr: SortCriteria[] = [];\r\n  isReloadAction: boolean = false;\r\n  currentLangCode: string | null;\r\n  private static sortOrder: number | undefined | null = 0;\r\n  readonly ColumnTypEnum = ColumnTypEnum;\r\n  protected readonly eval = eval;\r\n  private subscription: Subscription;\r\n  dropdownFilterOptionLabel: string = 'nameEn';\r\n  hasFilterValue: boolean = false;\r\n  lastUnSelectedColumn: ColumnDefinition;\r\n\r\n  constructor(\r\n    private _dataService: GDataTableService\r\n    , private _manualValidatorService: ManualValidatorService\r\n    , private _gMessagesService: GMessagesService\r\n    , private _dropdownService: DropdownService\r\n    , private _gTranslateService: TranslationService\r\n    , private translateService: TranslateService\r\n    , private _hijriFormatPipe: HijriFormatPipe\r\n    , private _datePipe: DatePipe\r\n    , private cdr: ChangeDetectorRef,\r\n    private _domSanitizer: DomSanitizer) {\r\n    this.subscription = this._dataService.reload.subscribe(reload => {\r\n      if (reload && reload == 1)\r\n        this.reloadGDataTable();\r\n      if (reload && reload == 2)\r\n        this.refreshGDataTableData();\r\n    });\r\n    this.translateService.onLangChange.subscribe((langChangeEvent: LangChangeEvent) => {\r\n      this.currentLangCode = langChangeEvent.lang;\r\n    });\r\n  }\r\n\r\n  ngOnInit(isReloadAction?: boolean): void {\r\n    this.currentLangCode = this.translateService.currentLang;\r\n    this.dropdownFilterOptionLabel = this.currentLangCode && this.currentLangCode.includes('ar') ? 'nameAr' : 'nameEn';\r\n    this.isReloadAction = isReloadAction != undefined ? isReloadAction : true;\r\n    this.configDataTableProps();\r\n    this.buildTableActions();\r\n    this.prepareFiltersData();\r\n    this.checkResetStoreOnReload(isReloadAction != undefined && !isReloadAction);\r\n    this.cdr.detectChanges(); // to solve ExpressionChangedAfterItHasBeenCheckedError\r\n  }\r\n\r\n  configDataTableProps() {\r\n    this.tableProperties.shownColumns = [...this.tableProperties.columns];\r\n    this.tableProperties.loading = false;\r\n    if (this.tableProperties.cacheFilter) {\r\n      this.dataTable.stateKey = this.tableProperties.cacheTableKey;\r\n      this.dataTable.stateStorage = this.tableProperties.storageType;\r\n    }\r\n    if (this.tableProperties.useDefaultPaginator) {\r\n      this.dataTable.paginator = true;\r\n      this.dataTable.showCurrentPageReport = this.tableProperties.paginatorProperties.showCurrentPageReport;\r\n      this.dataTable.currentPageReportTemplate = this.tableProperties.paginatorProperties.currentPageReportTemplate;\r\n      this.dataTable.rowsPerPageOptions = this.tableProperties.paginatorProperties.defaultPaginatorOptions;\r\n      this.dataTable.paginatorLocale = this.tableProperties.paginatorProperties.paginatorLocale;\r\n    }\r\n    if (this.tableProperties.multiSelection) {\r\n      this.dataTable.dataKey = this.tableProperties.selectionKey;\r\n      this.dataTable.selectionMode = \"multiple\";\r\n    }\r\n    if (this.tableProperties.disableSelectionConditions && this.tableProperties.disableSelectionConditions.length > 0)\r\n      this.tableProperties.disableSelectAll = true;\r\n    this.tableProperties.refreshGTableData = this.refreshGDataTableData;\r\n    this.tableProperties.reloadGDataTable = this.reloadGDataTable;\r\n    this.tableProperties.clearAllSelectedRows = this.clearAllSelectedRows;\r\n    this.tableProperties.pushToAllSelectedRows = this.pushToAllSelectedRows;\r\n    this.tableProperties.refreshAllSelectedRows = this.refreshAllSelectedRows;\r\n    this.tableProperties.syncPageSelectedRowsToAllSelectedRows = this.syncPageSelectedRowsToAllSelectedRows;\r\n  }\r\n\r\n  prepareFiltersData() {\r\n    for (let i = 0; i < this.tableProperties.columns.length; i++) {\r\n      if (this.tableProperties.columns[i].dropDwnOptionsUrl) {\r\n        this._dropdownService.loadDropDownData(this.tableProperties.columns[i].dropDwnOptionsUrl).subscribe((res: DropdownModel[]) => {\r\n          this.tableProperties.columns[i].dropDownOptions = res;\r\n        })\r\n      } else if (this.tableProperties.columns[i].dropDwnOptionsFunc) {\r\n        this.tableProperties.columns[i].dropDwnOptionsFunc().subscribe((res: DropdownModel[]) => {\r\n          this.tableProperties.columns[i].dropDownOptions = res;\r\n        })\r\n      }\r\n    }\r\n  }\r\n\r\n  private checkResetStoreOnReload(isReloadGTable: boolean) {\r\n    if ((this.tableProperties.clearTableCacheOnReload && this.isReloadAction) || isReloadGTable) {\r\n      this.dataTable.getStorage().removeItem(this.tableProperties.cacheTableKey);\r\n      this.dataTable.getStorage().removeItem(this.tableProperties.cacheTableDataKey!);\r\n      this.dataTable.getStorage().removeItem(this.tableProperties.cacheTablePagesKey!);\r\n      this.dataTable.getStorage().removeItem(this.tableProperties.cacheTableSelectedRowsKey!);\r\n      this.tableProperties.selectedRows = [];\r\n      this.dataTable.clear();\r\n    }\r\n  }\r\n\r\n  buildTableActions() {\r\n    if (this.tableProperties.exportExcel)\r\n      this.tableProperties.tableActions.push(new ActionListDet('exportExcel', \"\", \"pi pi-file-excel\", this.onExportExcel));\r\n    if (this.tableProperties.exportPdf)\r\n      this.tableProperties.tableActions.push(new ActionListDet('exportPdf', \"\", \"pi pi-file-export\", this.onExportPdf));\r\n  }\r\n\r\n  lazyLoadData(event: TableLazyLoadEvent) {\r\n    this.onStartLazyLoadEvent.emit(event);\r\n    if (this.tableProperties.cacheTableData && !this.tableProperties.clearTableCacheOnReload && this.isReloadAction) {\r\n      if (this.restoreTableData()) {\r\n        this.isReloadAction = false;\r\n        return;\r\n      }\r\n    }\r\n    if (this.prepareAllFilterCriteria(event.filters)) {\r\n      this.hasFilterValue = this.filtersCriteriaArr && this.filtersCriteriaArr.length > 0;\r\n      this.hideChildFiltersPopup();\r\n      this.handleSortActions(event);\r\n      this.tableProperties.loading = true;\r\n      this.prepareAllSortCriteria(event.multiSortMeta, event.sortField, event.sortOrder);\r\n      this.tableProperties.paginatorProperties.firstRowIndex = (event.first != null && true) ? event.first : this.tableProperties.paginatorProperties.firstRowIndex;\r\n      this.tableProperties.paginatorProperties.pageSize = this.tableProperties.paginatorProperties.selectedPaginatorOption;\r\n      let offset = this.tableProperties.paginatorProperties.firstRowIndex;\r\n      let limit = event.rows && event.rows > this.tableProperties.paginatorProperties.pageSize ? event.rows : this.tableProperties.paginatorProperties.pageSize;\r\n      let inputDataModel: InputDataModel = new InputDataModel(this.filtersCriteriaArr, limit, offset, this.tableProperties.defaultSortCriteria, this.sortCriteriaArr);\r\n      this.onPreparedRequestLazyLoadEvent.emit(inputDataModel);\r\n      // this.cdr.detectChanges();\r\n      this._dataService.loadData(inputDataModel, this.tableProperties.dataApiUrl, this.tableProperties.httpMethodForUrl).subscribe({\r\n          next: (response: any) => {\r\n            if (response.response.responseCode == 0) {\r\n              this.tableProperties.rowsData = response.response.data.content;\r\n              this.tableProperties.paginatorProperties.totalRecords = response.response.data.numberOfRecords;\r\n              if (this.tableProperties.cacheTableData) {\r\n                this.dataTable.getStorage().setItem(this.tableProperties.cacheTableDataKey!, JSON.stringify(this.tableProperties.rowsData));\r\n                this.dataTable.getStorage().setItem(this.tableProperties.cacheTablePagesKey!, JSON.stringify(this.tableProperties.paginatorProperties));\r\n              }\r\n              setTimeout(() => this.syncPageSelectionWithCache(), 5);\r\n            } else {\r\n              console.error(response.response.responseDesc);\r\n              // this._gMessagesService.showToast({\r\n              //   severity: 'error',\r\n              //   summary: '',\r\n              //   detail: response.response.responseDesc,\r\n              //   key: \"loadDataError\"\r\n              // });\r\n            }\r\n            this.tableProperties.loading = false;\r\n            this.onDataFetchedLazyLoadEvent.emit(this.tableProperties.rowsData);\r\n          },\r\n          error: error => {\r\n            // this._gMessagesService.showToast({\r\n            //   severity: 'error',\r\n            //   summary: '',\r\n            //   detail: error,\r\n            //   key: \"loadDataError\"\r\n            // });\r\n            console.error(error);\r\n            this.tableProperties.loading = false;\r\n            // to be handled\r\n          }\r\n        }\r\n      );\r\n    }\r\n  }\r\n\r\n  private restoreTableData(): boolean {\r\n    this.tableProperties.rowsData = JSON.parse(this.dataTable.getStorage().getItem(this.tableProperties.cacheTableDataKey!)!);\r\n    let paginator = JSON.parse(this.dataTable.getStorage().getItem(this.tableProperties.cacheTablePagesKey!)!);\r\n    this.tableProperties.paginatorProperties = paginator ? paginator : this.tableProperties.paginatorProperties;\r\n    return !!this.tableProperties.rowsData;\r\n  }\r\n\r\n  resetTableFilters() {\r\n    if (this.hasFilterValue) {\r\n      this.dataTable.clearFilterValues();\r\n      this.dataTable.clear();\r\n      let lazyLoadEvent = undefined;\r\n      if (this.tableProperties.cacheFilter) {\r\n        lazyLoadEvent = JSON.parse(this.dataTable.getStorage().getItem(this.tableProperties.cacheTableKey!)!);\r\n        if (lazyLoadEvent)\r\n          lazyLoadEvent.filters = {};\r\n      }\r\n      this.dataTable.getStorage().removeItem(this.tableProperties.cacheTableKey);\r\n      this.lazyLoadData(lazyLoadEvent ? lazyLoadEvent : {\r\n          first: 0\r\n          , rows: 1\r\n          , filters: {}\r\n          , multiSortMeta: undefined\r\n          , sortOrder: undefined\r\n          , sortField: undefined\r\n        }\r\n      );\r\n    }\r\n  }\r\n\r\n  setupFilterData(filterValue: any, filterField: string) {\r\n    (this.dataTable.filters[filterField] as FilterMetadata[])[0].value = filterValue;\r\n  }\r\n\r\n  private prepareAllFilterCriteria(filters: any): boolean {\r\n    if (filters) {\r\n      this.filtersCriteriaArr = [];\r\n      this.initDefaultCriteriaFilters();\r\n      let filtersKeys = Object.keys(filters);\r\n      for (let i = 0; i < filtersKeys.length; i++) {\r\n        let filterKey = filtersKeys[i];\r\n        let column = this.tableProperties.shownColumns.find(colDef => colDef.filterField === filterKey);\r\n        if (column) {\r\n          column!.styleClass = '';\r\n          if (filters[filterKey][0].value != null && filters[filterKey][0].value != undefined && filters[filterKey][0].value.toString().trim().length > 0) {\r\n            if (this._manualValidatorService.validateInputs(column!.inputValidators, filters[filterKey][0].value)) {\r\n              let value;\r\n              switch (column?.columnType) {\r\n                case ColumnTypEnum.DATE_GRE:\r\n                  value = filters[filterKey][0].value.toLocaleDateString('en-GB');\r\n                  break;\r\n                default:\r\n                  value = filters[filterKey][0].value;\r\n                  break;\r\n              }\r\n              if (column.filterOperation !== FilterOperationEnum.BIT_CHECK)\r\n                this.filtersCriteriaArr.push(new FilterCriteria(filterKey, value, column!.filterOperation));\r\n              else {\r\n                let bitCheckValues: string[] = value.split(\",\");\r\n                bitCheckValues.forEach(bitCheckValue => {\r\n                  let keyVal = bitCheckValue.split(\":\");\r\n                  this.filtersCriteriaArr.push(new FilterCriteria(filterKey, [parseInt(keyVal[0]), parseInt(keyVal[1])], column!.filterOperation));\r\n                });\r\n              }\r\n            } else {\r\n              column!.styleClass = 'p-error';\r\n              this._gMessagesService.showToast({\r\n                severity: 'error',\r\n                summary: this._gTranslateService.getTranslation('gTableFilterError'),\r\n                detail: this._gTranslateService.getTranslation('gTableFilterInvalidDataType'),\r\n                key: \"fet\"\r\n              });\r\n              return false;\r\n            }\r\n\r\n          }\r\n        } else {\r\n          console.error(\"Error : No Column Found for Column Filter Key : \" + filterKey);\r\n          delete this.dataTable.filters[filterKey];\r\n\r\n        }\r\n      }\r\n    }\r\n    return true;\r\n\r\n  }\r\n\r\n  private handleSortActions(event: TableLazyLoadEvent) {\r\n    debugger\r\n    const isSortAction =\r\n      event.sortField !== undefined &&\r\n      event.sortOrder !== undefined &&\r\n      event.sortOrder !== GDatatableComponent.sortOrder;\r\n\r\n    if (isSortAction && GDatatableComponent.sortOrder == -1) {\r\n      // remove desc sort only on sort click\r\n      event.sortField = undefined;\r\n      event.sortOrder = undefined;\r\n\r\n      this.dataTable.sortOrder = 0;\r\n      this.dataTable.sortField = undefined;\r\n\r\n      GDatatableComponent.sortOrder = 0;\r\n      return;\r\n    }\r\n\r\n    if (isSortAction) {\r\n      GDatatableComponent.sortOrder = event.sortOrder!;\r\n    }\r\n  }\r\n\r\n  private prepareAllSortCriteria(sortMultiple: any, propertyName: string | string[] | null | undefined, sortOrder: number | null | undefined) {\r\n    this.sortCriteriaArr = [];\r\n    if (propertyName && sortOrder) {\r\n      this.sortCriteriaArr.push(new SortCriteria(propertyName, sortOrder == 1 ? \"asc\" : \"desc\"));\r\n    }\r\n  }\r\n\r\n  showHideColumnChange(selectedColumns: ColumnDefinition[]) {\r\n    if (this.tableProperties.shownColumns.length == 1)\r\n      this.lastUnSelectedColumn = this.tableProperties.shownColumns[0];\r\n    if (selectedColumns && selectedColumns.length > 0) {\r\n      // Find unselected columns\r\n      const unselectedColumns: ColumnDefinition[] = this.tableProperties.columns.filter(\r\n        col => !selectedColumns.includes(col)\r\n      );\r\n      if (unselectedColumns) {\r\n        unselectedColumns.forEach(unselectedColumn => {\r\n          // To remove filter value\r\n          //    (this.dataTable.filters[unselectedColumn.filterField] as FilterMetadata[])[0].value = null;\r\n        })\r\n      }\r\n    } else {\r\n      this.tableProperties.shownColumns.push(this.lastUnSelectedColumn);\r\n    }\r\n  }\r\n\r\n  cellValue(rowData: any, colField: string, colmDef?: ColumnDefinition) {\r\n    if (rowData && colField) {\r\n      let cellValue: any;\r\n      if (colField.includes(\":\")) {\r\n        let fields: string[] = colField.split(\":\");\r\n        fields.forEach((field: string, index: number) => {\r\n          if (!cellValue && index == 0) {\r\n            cellValue = rowData[field];\r\n          } else {\r\n            if (!cellValue)\r\n              cellValue = {};\r\n            cellValue = cellValue[field];\r\n          }\r\n        })\r\n      } else {\r\n        cellValue = rowData[colField];\r\n      }\r\n      if (colmDef && colmDef.valueFormatter && colField == colmDef.field) {\r\n        if (colmDef.bypassSecurityTrustHtml)\r\n          return this._domSanitizer.bypassSecurityTrustHtml(colmDef.valueFormatter(cellValue, rowData));\r\n        else\r\n          return colmDef.valueFormatter(cellValue, rowData);\r\n      }\r\n      return cellValue;\r\n    }\r\n  }\r\n\r\n  isNumber(value: any): boolean {\r\n    return !isNaN(parseFloat(value)) && isFinite(value);\r\n  }\r\n\r\n\r\n  private initDefaultCriteriaFilters() {\r\n    this.filtersCriteriaArr = [...this.tableProperties.defaultCriteriaFilters];\r\n\r\n  }\r\n\r\n  clearGlobalSearch(table: Table) {\r\n    table.clear();\r\n  }\r\n\r\n  filterGlobal($event: any, table: Table) {\r\n\r\n  }\r\n\r\n  hideFilterPopup(filterElement: ColumnFilter) {\r\n    filterElement.hide();\r\n  }\r\n\r\n  hideChildFiltersPopup() {\r\n    if (this.columnFilters) {\r\n      this.columnFilters.toArray().forEach(colFilter => colFilter.hide());\r\n    }\r\n\r\n  }\r\n\r\n  private reloadGDataTable = () => {\r\n    this.ngOnInit(false);\r\n    this.lazyLoadData({\r\n        first: 0\r\n        , rows: 1\r\n        , filters: {}\r\n        , multiSortMeta: undefined\r\n        , sortOrder: undefined\r\n        , sortField: undefined\r\n      }\r\n    );\r\n  }\r\n  refreshGDataTableData = () => {\r\n    let lazyLoadEvent = undefined;\r\n    if (this.tableProperties.cacheFilter)\r\n      lazyLoadEvent = JSON.parse(this.dataTable.getStorage().getItem(this.tableProperties.cacheTableKey!)!);\r\n    this.lazyLoadData(lazyLoadEvent ? lazyLoadEvent : {\r\n        first: 0\r\n        , rows: 1\r\n        , filters: {}\r\n        , multiSortMeta: undefined\r\n        , sortOrder: undefined\r\n        , sortField: undefined\r\n      }\r\n    );\r\n  }\r\n\r\n  clearAllSelectedRows = () => {\r\n    if (this.tableProperties.withManualHandleSelectAllMode) {\r\n      this.tableProperties.allSelectedRows = [];\r\n      this.updateCachedSelectedRows();\r\n      this.syncPageSelectionWithCache();\r\n    } else {\r\n      throw new Error(\r\n        \"clearAllSelectedRows(): You are not enabling 'withManualHandleSelectAllMode'. Please enable it before using this method.\"\r\n      );\r\n    }\r\n  }\r\n\r\n  pushToAllSelectedRows = (rowOrRows: any | any[]) => {\r\n    if (this.tableProperties.withManualHandleSelectAllMode) {\r\n      if (!rowOrRows || (Array.isArray(rowOrRows) && rowOrRows.length === 0)) {\r\n        return;\r\n      }\r\n      this.initializeAllSelectedRowsFromCache();\r\n\r\n      const rowsToAdd = Array.isArray(rowOrRows) ? rowOrRows : [rowOrRows];\r\n\r\n      rowsToAdd.forEach(row => {\r\n        if (!row) return;\r\n        const exists = this.tableProperties.allSelectedRows.some(\r\n          r => r[this.tableProperties.selectionKey] === row[this.tableProperties.selectionKey]\r\n        );\r\n        if (!exists) {\r\n          this.tableProperties.allSelectedRows.push(row);\r\n        }\r\n      });\r\n      this.updateCachedSelectedRows();\r\n      this.syncPageSelectionWithCache();\r\n    } else {\r\n      throw new Error(\r\n        \"pushToAllSelectedRows(): You are not enabling 'withManualHandleSelectAllMode'. Please enable it before using this method.\"\r\n      );\r\n    }\r\n  }\r\n\r\n  refreshAllSelectedRows = () => {\r\n    if (this.tableProperties.withManualHandleSelectAllMode) {\r\n      this.updateCachedSelectedRows();\r\n      this.syncPageSelectionWithCache();\r\n    } else {\r\n      throw new Error(\r\n        \"refreshAllSelectedRows(): You are not enabling 'withManualHandleSelectAllMode'. Please enable it before using this method.\"\r\n      );\r\n    }\r\n  }\r\n\r\n  //===== Paginator Handling ====\r\n  onChangePageSize(event: any) {\r\n    if (this.tableProperties.paginatorProperties.firstRowIndex != 0\r\n      && this.tableProperties.paginatorProperties.totalRecords - this.tableProperties.paginatorProperties.firstRowIndex < event) {\r\n      return;\r\n    }\r\n    this.lazyLoadData({rows: event});\r\n  }\r\n\r\n  onPageChange(event: any): void {\r\n    //\r\n    this.lazyLoadData(event);\r\n\r\n  }\r\n\r\n  drawBadgeSeverity(value: any, col: ColumnDefinition): string | undefined {\r\n    return col.badgesSeverityColorsMap.find(badge => badge.value === value)?.severityColor;\r\n  }\r\n\r\n  evalConditionV2(rowData: any, renderConditions: GenericCondition[]) {\r\n    const evaluateCondition = (cellVal: any, condition: GenericCondition) => {\r\n      const {operator, value} = condition;\r\n\r\n      switch (operator) {\r\n        case ConditionOperatorsEnum.LIST_INCLUDE:\r\n          return Array.isArray(cellVal) && cellVal.includes(value);\r\n        case ConditionOperatorsEnum.EQUAL:\r\n          return cellVal === value;\r\n        case ConditionOperatorsEnum.GTE:\r\n          return cellVal > value;\r\n        case ConditionOperatorsEnum.LTE:\r\n          return cellVal < value;\r\n        // Add more operators as needed\r\n        default:\r\n          throw new Error(`Unsupported operator: ${operator}`);\r\n      }\r\n    };\r\n\r\n    let result = true;\r\n    let logicalOperator = \"&&\"; // Default to AND\r\n\r\n    for (const condition of renderConditions) {\r\n      const cellVal = this.cellValue(rowData, condition.field);\r\n      const conditionResult = evaluateCondition(cellVal, condition);\r\n\r\n      if (logicalOperator === \"&&\") {\r\n        result = result && conditionResult;\r\n      } else if (logicalOperator === \"||\") {\r\n        result = result || conditionResult;\r\n      } else {\r\n        throw new Error(`Unsupported logical operator: ${logicalOperator}`);\r\n      }\r\n\r\n      logicalOperator = condition.nextOperator || \"&&\"; // Default to AND if not specified\r\n    }\r\n\r\n    return result;\r\n  }\r\n\r\n  evalCondition(rowData: any, renderConditions: GenericCondition[]) {\r\n    let equation = '';\r\n\r\n    for (const element of renderConditions) {\r\n      let cellVal = this.cellValue(rowData, element.field);\r\n\r\n      if (element.startBracket) equation += element.startBracket;\r\n\r\n      if (element.operator === ConditionOperatorsEnum.LIST_INCLUDE) {\r\n        // Convert array elements into an OR condition: ('val1' === 'target' || 'val2' === 'target')\r\n        equation += `(${JSON.stringify(cellVal)}.some(v => v === '${element.value}'))`;\r\n      } else {\r\n        equation += `'${cellVal}' ${element.operator} '${element.value}'`;\r\n      }\r\n\r\n      if (element.endBracket) equation += element.endBracket;\r\n      if (element.nextOperator) equation += ` ${element.nextOperator} `;\r\n    }\r\n\r\n    return eval(equation);\r\n  }\r\n\r\n  onHeaderCheckboxToggle(event: any) {\r\n    const pageRows = this.dataTable.value || [];\r\n\r\n    if (this.tableProperties.withManualHandleSelectAllMode) {\r\n\r\n      this.initializeAllSelectedRowsFromCache();\r\n\r\n      if (event.checked) {\r\n        pageRows.forEach((row: any) => {\r\n          if (\r\n            !this.tableProperties.allSelectedRows.some(\r\n              r => r[this.tableProperties.selectionKey] == row[this.tableProperties.selectionKey]\r\n            )\r\n          ) {\r\n            this.tableProperties.allSelectedRows.push(row);\r\n          }\r\n        });\r\n      } else {\r\n        this.tableProperties.allSelectedRows = this.tableProperties.allSelectedRows.filter(\r\n          selected =>\r\n            !pageRows.some(\r\n              (row: any) =>\r\n                row[this.tableProperties.selectionKey] == selected[this.tableProperties.selectionKey]\r\n            )\r\n        );\r\n      }\r\n      // Cache the updated selection in storage\r\n      this.updateCachedSelectedRows();\r\n    }\r\n\r\n    // Emit event (optional if used for external logic)\r\n    this.onSelectAllEvent.emit({\r\n      pageRows: pageRows,\r\n      checked: event.checked,\r\n      selectRowsInPage: this.tableProperties.selectedRows,\r\n      allSelectedRows: this.tableProperties.withManualHandleSelectAllMode ? this.tableProperties.allSelectedRows : null\r\n    });\r\n  }\r\n\r\n  onRowSelect(event: any) {\r\n    if (this.tableProperties.withManualHandleSelectAllMode) {\r\n      const row = event.data;\r\n      if (\r\n        !this.tableProperties.allSelectedRows.some(\r\n          r => r[this.tableProperties.selectionKey] === row[this.tableProperties.selectionKey]\r\n        )\r\n      ) {\r\n        this.tableProperties.allSelectedRows.push(row);\r\n        this.updateCachedSelectedRows();\r\n      }\r\n    }\r\n    this.onRowSelectEvent.emit(event);\r\n  }\r\n\r\n  onRowUnselect(event: any) {\r\n    if (this.tableProperties.withManualHandleSelectAllMode) {\r\n      const row = event.data;\r\n      this.tableProperties.allSelectedRows = this.tableProperties.allSelectedRows.filter(\r\n        r => r[this.tableProperties.selectionKey] !== row[this.tableProperties.selectionKey]\r\n      );\r\n      this.updateCachedSelectedRows();\r\n    }\r\n    this.onRowUnselectEvent.emit(event);\r\n  }\r\n\r\n  updateCachedSelectedRows() {\r\n    this.dataTable\r\n      .getStorage()\r\n      .setItem(\r\n        this.tableProperties.cacheTableSelectedRowsKey!,\r\n        JSON.stringify(this.tableProperties.allSelectedRows)\r\n      );\r\n  }\r\n\r\n  syncPageSelectionWithCache() {\r\n    if (this.tableProperties.withManualHandleSelectAllMode) {\r\n      this.initializeAllSelectedRowsFromCache();\r\n      this.tableProperties.selectedRows = this.tableProperties.rowsData.filter(row =>\r\n        this.tableProperties.allSelectedRows.some(\r\n          selected => selected[this.tableProperties.selectionKey] === row[this.tableProperties.selectionKey]\r\n        )\r\n      );\r\n    }\r\n  }\r\n\r\n  syncPageSelectedRowsToAllSelectedRows = () => {\r\n    if (this.tableProperties.withManualHandleSelectAllMode) {\r\n      this.initializeAllSelectedRowsFromCache();\r\n      this.tableProperties.selectedRows.forEach(selectedRow => {\r\n        const exists = this.tableProperties.allSelectedRows.some(\r\n          r => r[this.tableProperties.selectionKey] === selectedRow[this.tableProperties.selectionKey]\r\n        );\r\n        if (!exists) {\r\n          this.tableProperties.allSelectedRows.push(selectedRow);\r\n        }\r\n      });\r\n      this.updateCachedSelectedRows();\r\n    } else {\r\n      throw new Error(\r\n        \"syncPageSelectedRowsToAllSelectedRows(): You are not enabling 'withManualHandleSelectAllMode'. Please enable it before using this method.\"\r\n      );\r\n    }\r\n  }\r\n\r\n  initializeAllSelectedRowsFromCache() {\r\n    const cachedSelectedRowsJson = this.dataTable.getStorage().getItem(this.tableProperties.cacheTableSelectedRowsKey!);\r\n    this.tableProperties.allSelectedRows = cachedSelectedRowsJson ? JSON.parse(cachedSelectedRowsJson) : [];\r\n  }\r\n\r\n\r\n  onExportPdf = () => {\r\n    if (this.tableProperties.selectedRows.length > 0 && this.tableProperties.multiSelection) {\r\n      this.buildExportHeaders();\r\n      this.exportPdf(this.buildExportJsonData(this.tableProperties.selectedRows));\r\n    } else {\r\n      let inputDataModel: InputDataModel = new InputDataModel(this.filtersCriteriaArr, this.tableProperties.paginatorProperties.totalRecords, 0, this.tableProperties.defaultSortCriteria, this.sortCriteriaArr);\r\n      this._dataService.loadData(inputDataModel, this.tableProperties.exportDataApiUrl ?\r\n          this.tableProperties.exportDataApiUrl :\r\n          this.tableProperties.dataApiUrl,\r\n        this.tableProperties.httpMethodForUrl).subscribe({\r\n          next: (response: any) => {\r\n            if (response.response.responseCode == 0) {\r\n              this.buildExportHeaders();\r\n              if (this.currentLangCode &&\r\n                (\r\n                  this.currentLangCode.includes('ar') ||\r\n                  this.currentLangCode.includes('ur') ||\r\n                  this.currentLangCode.includes('fa')\r\n                )\r\n              )\r\n                this.exportRTLPdf(this.buildExportJsonData(response.response.data.content));\r\n              else\r\n                this.exportPdf(this.buildExportJsonData(response.response.data.content));\r\n            } else {\r\n              this._gMessagesService.showError(\"error\", response.response.responseDesc, false);\r\n            }\r\n          },\r\n          error: error => {\r\n            this._gMessagesService.showError(\"error\", error.message, false);\r\n            console.log(error);\r\n          }\r\n        }\r\n      );\r\n    }\r\n  }\r\n\r\n  exportPdf(data: any[]) {\r\n    import('jspdf').then((jsPDF) => {\r\n      import('jspdf-autotable').then((x) => {\r\n        const doc = new jsPDF.default('l', 'px', [2000, 1000]); // Custom size, very wide\r\n        try {\r\n          doc.addFont(this.tableProperties.exportPdFontFileConfig.postScriptName, this.tableProperties.exportPdFontFileConfig.id, this.tableProperties.exportPdFontFileConfig.fontStyle);\r\n          //   doc.addFont(this.tableProperties.exportPdFontFilePath, 'Tajawal', 'normal');\r\n        } catch (e) {\r\n          throw new Error(\"to handle Arabic consider adding this font file 'Amiri-Regular.ttf' to path 'assets/layout/'\");\r\n        }\r\n\r\n        const options = {\r\n          styles: {\r\n            font: 'Amiri',\r\n            fontSize: 20, // Decrease font size\r\n            overflow: 'linebreak', // Enable text wrapping\r\n            cellPadding: 2, // Adjust cell padding as needed\r\n          },\r\n          headStyles: {\r\n            halign: 'left', // Center align header text\r\n          },\r\n          bodyStyles: {\r\n            halign: 'left', // Left align body text\r\n          },\r\n        };\r\n\r\n        (doc as any).autoTable(this.tableProperties.exportedColumns, data, {\r\n          ...options,\r\n          margin: {top: 5, left: 1, right: 1, bottom: 1} // Set margins to zero\r\n        });\r\n        doc.save((this.tableProperties.exportFileName ? this.tableProperties.exportFileName : 'pdf_data') + '_export_' + new Date().getTime() + '.pdf');\r\n      });\r\n    });\r\n  }\r\n\r\n\r\n  exportRTLPdf(data: any[]) {\r\n    import('jspdf').then((jsPDF) => {\r\n      import('jspdf-autotable').then((x) => {\r\n        const doc = new jsPDF.default('l', 'px', [2000, 1000]);\r\n        try {\r\n          doc.addFont(this.tableProperties.exportPdFontFileConfig.postScriptName, this.tableProperties.exportPdFontFileConfig.id, this.tableProperties.exportPdFontFileConfig.fontStyle);\r\n        } catch (e) {\r\n          throw new Error(\"to handle Arabic consider adding this font file 'Amiri-Regular.ttf' to path 'assets/layout/'\");\r\n        }\r\n\r\n        const rtlOptions = {\r\n          styles: {\r\n            font: 'Amiri',\r\n            fontSize: 20, // Decrease font size\r\n            direction: 'rtl',\r\n            halign: 'right', // Align text to the right for all cells\r\n            overflow: 'linebreak', // Enable text wrapping\r\n            cellPadding: 2, // Adjust cell padding as needed\r\n          },\r\n          bodyStyles: {\r\n            halign: 'right', // Align body text to the right\r\n          },\r\n          headStyles: {\r\n            halign: 'right', // Align header text to the right\r\n          },\r\n          footStyles: {\r\n            halign: 'right', // Align footer text to the right\r\n          },\r\n          createdCell: function (cell: { raw: { textContent: any; }; text: any; }, data: any) {\r\n            if (cell.raw) {\r\n              cell.text = cell.raw.textContent; // Ensure this is set correctly\r\n            }\r\n          }\r\n        };\r\n\r\n        // Reverse the order of the columns\r\n        const reversedColumns = [...this.tableProperties.exportedColumns].reverse();\r\n\r\n        // Extract the values from each object in the data array and reverse the order of the values\r\n        const reversedData = data.map(row => Object.values(row).reverse());\r\n\r\n        (doc as any).autoTable(reversedColumns, reversedData, {\r\n          ...rtlOptions,\r\n          margin: {top: 5, left: 1, right: 1, bottom: 1} // Set margins to zero\r\n        });\r\n        doc.save((this.tableProperties.exportFileName ? this.tableProperties.exportFileName : 'pdf_data') + '_export_' + new Date().getTime() + '.pdf');\r\n      });\r\n    });\r\n  }\r\n\r\n  onExportExcel = () => {\r\n    this.buildExportHeaders();\r\n    if (this.tableProperties.selectedRows.length > 0 && this.tableProperties.multiSelection) {\r\n      this.exportExcel(this.buildExportJsonData(this.tableProperties.selectedRows));\r\n    } else {\r\n      let inputDataModel: InputDataModel = new InputDataModel(this.filtersCriteriaArr, this.tableProperties.paginatorProperties.totalRecords, 0, this.tableProperties.defaultSortCriteria, this.sortCriteriaArr);\r\n      this._dataService.loadData(inputDataModel, this.tableProperties.exportDataApiUrl ?\r\n          this.tableProperties.exportDataApiUrl :\r\n          this.tableProperties.dataApiUrl,\r\n        this.tableProperties.httpMethodForUrl).subscribe({\r\n          next: (response: any) => {\r\n            if (response.response.responseCode == 0) {\r\n              this.exportExcel(this.buildExportJsonData(response.response.data.content));\r\n            } else {\r\n              this._gMessagesService.showError(\"error\", response.response.responseDesc, false);\r\n            }\r\n          },\r\n          error: error => {\r\n            this._gMessagesService.showError(\"error\", error.message, false);\r\n            console.log(error);\r\n          }\r\n        }\r\n      );\r\n    }\r\n  }\r\n\r\n  buildExportJsonData(dataArr: any[]) {\r\n    return dataArr.map((row: any) => {\r\n      let obj: any = {};\r\n      let keys = this.getAllKeys(row);\r\n      this.tableProperties.exportedColumns.forEach(header => {\r\n        let key = keys.find(key => header.dataKey == key);\r\n        let celVal = this.cellValue(row, header.dataKey);\r\n        celVal = celVal && celVal !== null && celVal !== undefined && celVal.toString().trim().length > 0 ? celVal : '-';\r\n        if (key) {\r\n          if (header.columnType == ColumnTypEnum.DATE_GRE) {\r\n            const format = header.dateFormat && header.dateFormat.trim() !== '' ? header.dateFormat : 'dd/MM/yyyy';\r\n            if (celVal != '-')\r\n              obj[key] = this._datePipe.transform(celVal, format);\r\n            else\r\n              obj[key] = celVal;\r\n          } else if (header.columnType == ColumnTypEnum.DATE_Hij) {\r\n            if (celVal != '-')\r\n              obj[key] = this._hijriFormatPipe.transform(celVal);\r\n            else\r\n              obj[key] = celVal;\r\n          } else\r\n            obj[key] = celVal;\r\n        } else {\r\n          obj[header.dataKey] = '-';\r\n        }\r\n      });\r\n      return obj;\r\n    });\r\n  }\r\n\r\n  exportExcel(data: any[]) {\r\n    import('xlsx').then((xlsx) => {\r\n      const workbook = xlsx.utils.book_new();\r\n      const worksheet = xlsx.utils.json_to_sheet(data);\r\n\r\n      // Apply text format to all cells\r\n      Object.keys(worksheet).forEach(cell => {\r\n        if (worksheet[cell].v) {\r\n          worksheet[cell].t = 's'; // Set as text\r\n        }\r\n      });\r\n\r\n      // Define column properties (force text format)\r\n      worksheet['!cols'] = this.tableProperties.exportedColumns.map(() => ({wch: 20}));\r\n\r\n      // Add headers\r\n      xlsx.utils.sheet_add_aoa(worksheet, [this.tableProperties.exportedHeaders], {origin: \"A1\"});\r\n      xlsx.utils.book_append_sheet(workbook, worksheet, this.tableProperties.sheetsNames[0]);\r\n\r\n      // Generate Excel file and save\r\n      const excelBuffer: any = xlsx.write(workbook, {bookType: 'xlsx', type: 'array'});\r\n      this.saveAsExcelFile(excelBuffer, this.tableProperties.exportFileName || 'excel_data');\r\n    });\r\n  }\r\n\r\n  saveAsExcelFile(buffer: any, fileName: string): void {\r\n    let EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\n    let EXCEL_EXTENSION = '.xlsx';\r\n    const data: Blob = new Blob([buffer], {\r\n      type: EXCEL_TYPE\r\n    });\r\n    FileSaver.saveAs(data, fileName + '_export_' + new Date().getTime() + EXCEL_EXTENSION);\r\n  }\r\n\r\n  buildExportHeaders() {\r\n    debugger\r\n    if (this.tableProperties.exportColumnsInput && this.tableProperties.exportColumnsInput.length > 0) {\r\n      // just translate existing titles as the passed keys\r\n      this.tableProperties.exportedColumns = this.tableProperties.exportColumnsInput.map(col => ({\r\n        ...col,\r\n        title: col.titleIsTransKey ? this._gTranslateService.getTranslation(col.title) : col.title\r\n      }));\r\n    } else {\r\n      // build fresh exportColumns\r\n      this.tableProperties.exportedColumns = this.tableProperties.shownColumns.map(col => ({\r\n        title: this._gTranslateService.getTranslation(col.header),\r\n        dataKey: col.field,\r\n        columnType: col.columnType,\r\n        dateFormat: col.dateFormat,\r\n        titleIsTransKey: true,\r\n      }));\r\n    }\r\n\r\n    if (this.tableProperties.exportExcel) {\r\n      // build unique exportedHeaders based on title + dataKey\r\n      this.tableProperties.exportedHeaders = Array.from(\r\n        new Map(\r\n          this.tableProperties.exportedColumns.map(col => [`${col.title}__${col.dataKey}`, col.title])\r\n        ).values()\r\n      );\r\n    }\r\n  }\r\n\r\n  getAllKeys(obj: any, parentKey = '') {\r\n    let keys: string[] = [];\r\n    for (let key in obj) {\r\n      const currentKey: string = parentKey ? `${parentKey}:${key}` : key;\r\n      keys.push(currentKey);\r\n      if (typeof obj[key] === 'object') {\r\n        keys = keys.concat(this.getAllKeys(obj[key], currentKey));\r\n      }\r\n    }\r\n    return keys;\r\n  }\r\n\r\n  isSeverityClass(color: string) {\r\n    if (color) {\r\n      switch (color) {\r\n        case SeverityTypeEnum.DANGER:\r\n          return true;\r\n        case SeverityTypeEnum.INFO:\r\n          return true;\r\n        case SeverityTypeEnum.PRIMARY:\r\n          return true;\r\n        case SeverityTypeEnum.WARNING:\r\n          return true;\r\n        case SeverityTypeEnum.SUCCESS:\r\n          return true;\r\n        default:\r\n          return false;\r\n      }\r\n    } else return false;\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.subscription.unsubscribe();\r\n    if (!this.tableProperties.cacheFilter) {\r\n      this.dataTable.getStorage().removeItem(this.tableProperties.cacheTableSelectedRowsKey!);\r\n    }\r\n  }\r\n\r\n  checkHasPermission(rowData: any, action: ActionListDet, actionDropdown: HTMLElement, actionDropdownItems: HTMLElement, last: boolean) {\r\n    let hasPermission: boolean;\r\n    if (action.hasPermission && !action.renderConditions)\r\n      hasPermission = true;\r\n    else if (action.hasPermission && action.renderConditions)\r\n      hasPermission = rowData ? this.evalCondition(rowData, action.renderConditions) : true;\r\n    else hasPermission = false;\r\n\r\n    if (last) {\r\n      const hasItems = actionDropdownItems.children.length > 0;\r\n      if (!hasItems && !hasPermission)\r\n        actionDropdown.remove();\r\n    }\r\n    return hasPermission;\r\n  }\r\n}\r\n","<p-toast key=\"fet\"></p-toast>\r\n<p-toast key=\"loadDataError\" [life]=\"50000\"></p-toast>\r\n<p-table\r\n  class=\"elm-datatable p-datatable-gridlines p-datatable-striped p-datatable p-component p-datatable-hoverable-rows p-datatable-scrollable\"\r\n  #dataTable\r\n  [id]=\"tableProperties.tableId\"\r\n  [value]=\"tableProperties.rowsData\"\r\n  [(selection)]=\"tableProperties.selectedRows\"\r\n  (onHeaderCheckboxToggle)=\"onHeaderCheckboxToggle($event)\"\r\n  (onRowSelect)=\"onRowSelect($event)\"\r\n  (onRowUnselect)=\"onRowUnselect($event)\"\r\n  [columns]=\"tableProperties.shownColumns\"\r\n  [responsiveLayout]=\"tableProperties.responsiveLayout\"\r\n  [rows]=\"tableProperties.paginatorProperties.pageSize\"\r\n  [loading]=\"tableProperties.loading\"\r\n  [lazy]=\"tableProperties.lazy\"\r\n  (onLazyLoad)=\"lazyLoadData($event)\"\r\n  [breakpoint]=\"'960px'\"\r\n  [tableStyle]=\"{ 'min-width': '50rem' }\"\r\n  [totalRecords]=\"tableProperties.paginatorProperties.totalRecords\"\r\n  [first]=\"tableProperties.paginatorProperties.firstRowIndex\"\r\n  [scrollable]=\"true\"\r\n  [scrollHeight]=\"tableProperties.tableScrollHeight\"\r\n  [pageLinks]=\"tableProperties.pageLinksSize\"\r\n  [ngClass]=\"{\r\n        'hasHeader':  tableProperties.showTableCaption,\r\n        }\"\r\n\r\n>\r\n  <!-- Caption -->\r\n  <ng-template pTemplate=\"caption\" *ngIf=\"tableProperties.showTableCaption\">\r\n    <div>\r\n      {{ tableProperties.tableCaption | translate }}\r\n    </div>\r\n    <div class=\"flex-d\">\r\n\r\n      <div *ngIf=\"tableProperties.showConfigColumnsView\" class=\"first-item\"\r\n           [pTooltip]=\"'showHideTableColumns'|translate\" [tooltipPosition]=\"'top'\">\r\n\r\n        <p-multiSelect\r\n          [options]=\"tableProperties.columns\"\r\n          [(ngModel)]=\"tableProperties.shownColumns\"\r\n          [filter]=\"false\"\r\n          class=\"table-columns-select\"\r\n        >\r\n          <!--          [showToggleAll]=\"false\"\r\n          (ngModelChange)=\"showHideColumnChange($event)\"-->\r\n          <ng-template let-value pTemplate=\"selectedItems\">\r\n              <span *ngFor=\"let selectedCol of tableProperties.shownColumns\">\r\n                {{ selectedCol.header | translate }}\r\n              </span>\r\n          </ng-template>\r\n          <ng-template let-column pTemplate=\"item\">\r\n            <div class=\"flex align-items-center gap-2\">\r\n              <div>{{ column.header | translate }}</div>\r\n            </div>\r\n          </ng-template>\r\n        </p-multiSelect>\r\n\r\n      </div>\r\n\r\n      <div class=\"last-item\">\r\n\r\n        <div class=\"flex-d\">\r\n\r\n          <div class=\"last-first-item\"\r\n               [ngClass]=\"{\r\n          'has-filter': hasFilterValue\r\n        }\"\r\n               [pTooltip]=\"'resetFilters'|translate\"\r\n               [tooltipPosition]=\"'top'\"\r\n               (click)=\"resetTableFilters()\">\r\n            <i class=\"pi pi-filter-slash\"></i>\r\n          </div>\r\n\r\n          <div class=\"last-first-item\"\r\n               *ngIf=\"tableProperties.showRefreshButton\"\r\n               [pTooltip]=\"'refresh'|translate\"\r\n               [tooltipPosition]=\"'top'\"\r\n               (click)=\"refreshGDataTableData()\">\r\n            <i class=\"pi pi-refresh\"></i>\r\n          </div>\r\n\r\n          <div\r\n            #tableActionDropDown\r\n            *ngIf=\"tableProperties.tableActions.length > 0\"\r\n            ngbDropdown\r\n            container=\"body\"\r\n            [pTooltip]=\"'gt-export'|translate\"\r\n            [tooltipPosition]=\"'top'\"\r\n          >\r\n            <button\r\n              type=\"button\"\r\n              class=\"btn btn-primary\"\r\n              id=\"tableActionsdp\"\r\n              ngbDropdownToggle\r\n            >\r\n              {{ tableProperties.tableActionsLabel | translate }}\r\n              <i class=\"pi pi-cog\"></i>\r\n            </button>\r\n            <div ngbDropdownMenu aria-labelledby=\"tableActionsdp\" #tableActionDropDownItems>\r\n              <ng-container *ngFor=\"let action of tableProperties.tableActions;let last = last\">\r\n                <button\r\n                  *ngIf=\"checkHasPermission(null,action,tableActionDropDown,tableActionDropDownItems,last)\"\r\n                  (click)=\"\r\n                action.function(\r\n                  tableProperties.selectedRows.length > 0\r\n                    ? tableProperties.selectedRows\r\n                    : tableProperties.rowsData\r\n                )\r\n              \"\r\n                  ngbDropdownItem\r\n                >\r\n                  <ng-container *ngIf=\"action.name === 'exportExcel'\">\r\n                    <img ngSrc=\"../assets/layout/images/excel-gdt.png\" alt=\"{{ action.name }}\" width=\"20\" height=\"20\">\r\n                  </ng-container>\r\n\r\n                  <ng-container *ngIf=\"action.name === 'exportPdf'\">\r\n                    <img ngSrc=\"../assets/layout/images/pdf-gdt.png\" alt=\"{{ action.name }}\" width=\"20\" height=\"20\">\r\n                  </ng-container>\r\n\r\n\r\n                  <i *ngIf=\"action.name !== 'exportExcel' && action.name !== 'exportPdf'\" [class]=\"action.icon\"></i>\r\n                  {{ action.name | translate }}\r\n\r\n                </button>\r\n              </ng-container>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n\r\n  </ng-template>\r\n\r\n  <!-- Header -->\r\n  <ng-template pTemplate=\"header\" let-columns>\r\n    <tr>\r\n      <th *ngIf=\"tableProperties.multiSelection\" class=\"checkBoxTh\">\r\n        <div class=\"flex justify-content-center align-items-center\">\r\n          <div>\r\n            <div class=\"p-1\">\r\n              <p-tableHeaderCheckbox\r\n                [disabled]=\"tableProperties.disableSelectAll\"\r\n                [ngStyle]=\"tableProperties.hideSelectAll ? {'visibility': 'hidden'} : {}\">\r\n              </p-tableHeaderCheckbox>\r\n\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </th>\r\n      <ng-container *ngFor=\"let col of columns\">\r\n        <th pFrozenColumn [frozen]=\"col.frozen\">\r\n          <div class=\"flex justify-content-center align-items-center\">\r\n            <div [class]=\"col.styleClass\">\r\n              {{ col.header | translate }}\r\n            </div>\r\n            <p-sortIcon\r\n              [pSortableColumn]=\"col.sortField\"\r\n              class=\"setDimensions\"\r\n              *ngIf=\"col.sortable\"\r\n              [field]=\"col.sortField\"\r\n            ></p-sortIcon>\r\n\r\n            <div>\r\n              <div class=\"p-1\">\r\n                <!--======== Filters Types ========-->\r\n                <!-- Text Filter -->\r\n                <p-columnFilter\r\n                  #columnFilter\r\n                  type=\"text\"\r\n                  [field]=\"col.filterField\"\r\n                  display=\"menu\"\r\n                  *ngIf=\"col.searchable && col.columnType == ColumnTypEnum.TEXT\"\r\n                  [showMenu]=\"true\"\r\n                  [showMatchModes]=\"false\"\r\n                  [showAddButton]=\"false\"\r\n                  [showOperator]=\"false\"\r\n                  [hideOnClear]=\"true\"\r\n                ></p-columnFilter>\r\n                <!-- Geo Date Filter -->\r\n                <p-columnFilter\r\n                  #columnFilter\r\n                  [field]=\"col.filterField\"\r\n                  display=\"menu\"\r\n                  *ngIf=\"\r\n                    col.searchable && col.columnType == ColumnTypEnum.DATE_GRE\r\n                  \"\r\n                  [showMenu]=\"true\"\r\n                  [showMatchModes]=\"false\"\r\n                  [showAddButton]=\"false\"\r\n                  [showOperator]=\"false\"\r\n                  [hideOnClear]=\"true\"\r\n                >\r\n                  <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\r\n                    <p-calendar #greFilter [readonlyInput]=\"true\" [ngModel]=\"value\"\r\n                                (onSelect)=\"setupFilterData(greFilter.value,col.filterField)\"\r\n                                dateFormat=\"dd.mm.yy\"></p-calendar>\r\n                  </ng-template>\r\n                </p-columnFilter>\r\n                <!-- Hijri Date Filter -->\r\n                <p-columnFilter\r\n                  #columnFilter\r\n                  [field]=\"col.filterField\"\r\n                  display=\"menu\"\r\n                  *ngIf=\"\r\n                    col.searchable && col.columnType == ColumnTypEnum.DATE_Hij\r\n                  \"\r\n                  [showMenu]=\"true\"\r\n                  [showMatchModes]=\"false\"\r\n                  [showAddButton]=\"false\"\r\n                  [showOperator]=\"false\"\r\n                  [hideOnClear]=\"true\"\r\n                  [showApplyButton]=\"true\"\r\n                >\r\n                  <ng-template\r\n                    pTemplate=\"filter\"\r\n                    let-value\r\n                    let-filter=\"filterCallback\"\r\n                  >\r\n                    <gng-hijri-calendar\r\n                      #hijriFilter\r\n                      [value]=\"value\"\r\n                      (valueChange)=\"setupFilterData(hijriFilter.value,col.filterField)\"\r\n                    ></gng-hijri-calendar>\r\n                  </ng-template>\r\n                </p-columnFilter>\r\n                <!-- Dropdown Filter -->\r\n                <p-columnFilter\r\n                  #columnFilter\r\n                  [field]=\"col.filterField\"\r\n                  display=\"menu\"\r\n                  *ngIf=\"\r\n                    col.searchable && col.columnType == ColumnTypEnum.DROPDOWN\r\n                  \"\r\n                  [showMenu]=\"true\"\r\n                  [showMatchModes]=\"false\"\r\n                  [showAddButton]=\"false\"\r\n                  [showOperator]=\"false\"\r\n                  [hideOnClear]=\"true\"\r\n                  [showApplyButton]=\"true\"\r\n                >\r\n                  <ng-template\r\n                    pTemplate=\"filter\"\r\n                    let-value\r\n                    let-filter=\"filterCallback\"\r\n                  >\r\n                    <p-dropdown\r\n                      [placeholder]=\"'select' | translate\"\r\n                      #dbFilter\r\n                      [ngModel]=\"value\"\r\n                      [options]=\"col.dropDownOptions\"\r\n                      [filter]=\"true\"\r\n                      [filterBy]=\"dropdownFilterOptionLabel\"\r\n                      (onChange)=\"setupFilterData(dbFilter.value,col.filterField)\"\r\n                      [showClear]=\"true\"\r\n                      [optionLabel]=\"dropdownFilterOptionLabel\"\r\n                      [optionValue]=\"'value'\"\r\n                    >\r\n                      <ng-template let-option pTemplate=\"item\">\r\n                        <span class=\"ml-1 mt-1\">{{\r\n                            option[dropdownFilterOptionLabel]\r\n                          }}</span>\r\n                      </ng-template>\r\n                    </p-dropdown>\r\n                  </ng-template>\r\n                </p-columnFilter>\r\n                <!-- Multi Select  Filter -->\r\n                <p-columnFilter\r\n                  #columnFilter\r\n                  [field]=\"col.filterField\"\r\n                  display=\"menu\"\r\n                  *ngIf=\"\r\n                    col.searchable &&\r\n                    col.columnType == ColumnTypEnum.DROPDOWN_MULTI\r\n                  \"\r\n                  [showMenu]=\"true\"\r\n                  [showMatchModes]=\"false\"\r\n                  [showAddButton]=\"false\"\r\n                  [showOperator]=\"false\"\r\n                  [hideOnClear]=\"true\"\r\n                  [showApplyButton]=\"true\"\r\n                >\r\n                  <ng-template\r\n                    pTemplate=\"filter\"\r\n                    let-value\r\n                    let-filter=\"filterCallback\"\r\n                  >\r\n                    <p-multiSelect\r\n                      #msFilter\r\n                      [filter]=\"true\"\r\n                      [filterBy]=\"dropdownFilterOptionLabel\"\r\n                      [optionLabel]=\"dropdownFilterOptionLabel\"\r\n                      [optionValue]=\"'value'\"\r\n                      [ngModel]=\"value\"\r\n                      [options]=\"col.dropDownOptions\"\r\n                      (onChange)=\"setupFilterData(msFilter.value,col.filterField)\"\r\n                    >\r\n                      <ng-template let-option pTemplate=\"item\">\r\n                        <div class=\"inline-block vertical-align-middle\">\r\n                          <span class=\"ml-1 mt-1\">{{\r\n                              option[dropdownFilterOptionLabel]\r\n                            }}</span>\r\n                        </div>\r\n                      </ng-template>\r\n                    </p-multiSelect>\r\n                  </ng-template>\r\n                </p-columnFilter>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </th>\r\n      </ng-container>\r\n      <th\r\n        [ngStyle]=\"{\r\n          left: currentLangCode?.includes('ar') ? '0' : 'auto',\r\n          right: currentLangCode?.includes('ar') ? 'auto' : '0'\r\n        }\"\r\n        class=\"frozen-column-header\"\r\n        *ngIf=\"tableProperties.showRowActions\"\r\n      >\r\n        {{ \"actions\" | translate }}\r\n      </th>\r\n    </tr>\r\n  </ng-template>\r\n\r\n  <!-- Body -->\r\n  <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\">\r\n    <tr style=\"border-top: 1px solid #dee2e6\">\r\n      <td *ngIf=\"tableProperties.multiSelection\" class=\"checkBoxTd\">\r\n        <div class=\"flex justify-content-center align-items-center\">\r\n          <p-tableCheckbox\r\n            [disabled]=\"\r\n              tableProperties.disableSelectionConditions\r\n                ? evalCondition(\r\n                    rowData,\r\n                    tableProperties.disableSelectionConditions\r\n                  )\r\n                : false\r\n            \"\r\n            [value]=\"rowData\"\r\n          ></p-tableCheckbox>\r\n        </div>\r\n      </td>\r\n      <td\r\n        [ngClass]=\"{\r\n          'frozen-column': col.frozen\r\n        }\"\r\n        [ngStyle]=\"{\r\n          left: currentLangCode?.includes('ar') ? '0' : 'auto',\r\n          right: currentLangCode?.includes('ar') ? 'auto' : '0'\r\n        }\"\r\n        *ngFor=\"let col of columns\"\r\n      >\r\n        <div class=\"flex justify-content-center align-items-center\">\r\n          <span tooltipPosition=\"top\" [pTooltip]=\" cellValue(rowData, col.toolTipField, col)\"\r\n            *ngIf=\"\r\n              col.columnType !== ColumnTypEnum.DATE_GRE &&\r\n              col.columnType !== ColumnTypEnum.DATE_Hij\r\n            \"\r\n          >\r\n            <p-tag\r\n              *ngIf=\"\r\n                isSeverityClass(\r\n                  col.badgeSeverityColumn\r\n                    ? cellValue(rowData, col.badgeSeverityColumn,col)\r\n                    : rowData['badgeClass']\r\n                ) && col.showBadgeColors\r\n              \"\r\n              [value]=\"\r\n                col.isStaticValue != undefined && col.isStaticValue == true\r\n                  ? col.field\r\n                  : cellValue(rowData, col.field,col)\r\n              \"\r\n              [severity]=\"\r\n                col.badgeSeverityColumn\r\n                  ? cellValue(rowData, col.badgeSeverityColumn,col)\r\n                  : rowData['badgeClass']\r\n              \"\r\n            >\r\n            </p-tag>\r\n            <span\r\n              *ngIf=\"\r\n                !isSeverityClass(\r\n                  col.badgeSeverityColumn\r\n                    ? cellValue(rowData, col.badgeSeverityColumn,col)\r\n                    : rowData['badgeClass']\r\n                ) && col.showBadgeColors\r\n              \"\r\n              [class]=\"col.badgeSeverityColumn\r\n                  ? cellValue(rowData, col.badgeSeverityColumn,col)\r\n                  : rowData['badgeClass']\r\n              \"\r\n            >\r\n              {{\r\n                col.isStaticValue != undefined && col.isStaticValue == true\r\n                  ? col.field\r\n                  : cellValue(rowData, col.field, col)\r\n              }}\r\n            </span>\r\n            <span *ngIf=\"!col.showBadgeColors && !col.valueFormatter\"\r\n                  [ngClass]=\"{'number_font': isNumber(col.isStaticValue ? col.field : cellValue(rowData, col.field, col))}\">\r\n              {{\r\n                col.isStaticValue != undefined && col.isStaticValue == true\r\n                  ? col.field\r\n                  : cellValue(rowData, col.field, col)\r\n              }}\r\n            </span>\r\n             <span class=\"number_font\" *ngIf=\"!col.showBadgeColors && col.valueFormatter\" [innerHtml]=\"col.isStaticValue != undefined && col.isStaticValue == true\r\n                   ? col.field\r\n                   : cellValue(rowData, col.field,col)\">\r\n            </span>\r\n          </span>\r\n          <span *ngIf=\"col.columnType == ColumnTypEnum.DATE_GRE\" class=\"number_font\" tooltipPosition=\"top\" [pTooltip]=\" cellValue(rowData, col.toolTipField, col)\">\r\n            {{\r\n              (col.isStaticValue != undefined && col.isStaticValue == true\r\n                  ? col.field\r\n                  : cellValue(rowData, col.field, col)\r\n              ) | date : col.dateFormat\r\n            }}\r\n          </span>\r\n          <span tooltipPosition=\"top\" [pTooltip]=\" cellValue(rowData, col.toolTipField, col)\" *ngIf=\"col.columnType == ColumnTypEnum.DATE_Hij\" class=\"number_font\">\r\n            {{\r\n              (col.isStaticValue != undefined && col.isStaticValue == true\r\n                  ? col.field\r\n                  : cellValue(rowData, col.field, col)\r\n              ) | hijriFormat\r\n            }}\r\n          </span>\r\n        </div>\r\n      </td>\r\n      <!-- Actions -->\r\n      <td\r\n        class=\"frozen-column\"\r\n        [ngStyle]=\"{\r\n          left: currentLangCode?.includes('ar') ? '0' : 'auto',\r\n          right: currentLangCode?.includes('ar') ? 'auto' : '0'\r\n        }\"\r\n        *ngIf=\"tableProperties.showRowActions && tableProperties.rowActions.length > 0\"\r\n      >\r\n        <div class=\"rows-actions-container\">\r\n          <ng-container #flatRowActions\r\n                        *ngIf=\"tableProperties.flatRowsActions && tableProperties.flatRowsActions.length > 0\">\r\n            <div #flatRowActionItems\r\n                 *ngFor=\"let action of tableProperties.flatRowsActions; let last = last\"\r\n            >\r\n              <div\r\n                [pTooltip]=\"action.actionHoverToolTipKey|translate\"\r\n                tooltipPosition=\"top\"\r\n                class=\"flat-row-action\"\r\n                *ngIf=\"checkHasPermission(rowData,action,flatRowActions,flatRowActionItems,last)\"\r\n                (click)=\"action.function(rowData)\"\r\n              >\r\n                <i [class]=\"action.icon\"></i>\r\n                {{ action.name | translate }}\r\n              </div>\r\n            </div>\r\n          </ng-container>\r\n          <div *ngIf=\"tableProperties.dropDownRowsAction && tableProperties.dropDownRowsAction.length > 0\"\r\n               ngbDropdown\r\n               #actionDropdown\r\n               class=\"d-inline-block\" container=\"body\">\r\n            <button\r\n              type=\"button\"\r\n              class=\"btn btn-outline-primary\"\r\n              id=\"dropdownBasic1\"\r\n              ngbDropdownToggle\r\n            >\r\n              <i class=\"pi pi-cog\"></i>\r\n            </button>\r\n            <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\" #actionDropdownItems>\r\n              <ng-container *ngFor=\"let action of tableProperties.dropDownRowsAction;let last = last\">\r\n                <button\r\n                  [pTooltip]=\"action.actionHoverToolTipKey|translate\"\r\n                  tooltipPosition=\"top\"\r\n                  *ngIf=\"checkHasPermission(rowData,action,actionDropdown,actionDropdownItems,last)\"\r\n                  (click)=\"action.function(rowData)\"\r\n                  ngbDropdownItem\r\n                >\r\n                  <i [class]=\"action.icon\"></i>\r\n                  {{ action.name | translate }}\r\n                </button>\r\n              </ng-container>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </td>\r\n    </tr>\r\n  </ng-template>\r\n\r\n  <ng-template pTemplate=\"emptymessage\" let-columns>\r\n    <tr>\r\n      <td\r\n        [attr.colspan]=\"\r\n          tableProperties.showRowActions ? columns.length + 1 : columns.length\r\n        \"\r\n        style=\"text-align: center\"\r\n      >\r\n        <h4>{{ \"noRecordsFound\" | translate }}</h4>\r\n      </td>\r\n    </tr>\r\n  </ng-template>\r\n\r\n  <!-- Footer => \"paginator\" -->\r\n  <ng-template pTemplate=\"summary\" *ngIf=\"!tableProperties.useDefaultPaginator\">\r\n    <div class=\"row xy-3\">\r\n      <div class=\"col-auto me-auto\">\r\n        <span class=\"mx-1 text-color\">{{\r\n            tableProperties.paginatorProperties.pageReportMsg | translate\r\n          }}</span>\r\n        <p-dropdown\r\n          [options]=\"tableProperties.paginatorProperties.customPaginatorOptions\"\r\n          optionLabel=\"label\"\r\n          optionValue=\"value\"\r\n          [(ngModel)]=\"\r\n            tableProperties.paginatorProperties.selectedPaginatorOption\r\n          \"\r\n          (ngModelChange)=\"onChangePageSize($event)\"\r\n        >\r\n        </p-dropdown>\r\n      </div>\r\n      <div class=\"col-auto\">\r\n        <p-paginator\r\n          [first]=\"tableProperties.paginatorProperties.firstRowIndex\"\r\n          [rows]=\"tableProperties.paginatorProperties.pageSize\"\r\n          [totalRecords]=\"tableProperties.paginatorProperties.totalRecords\"\r\n          (onPageChange)=\"onPageChange($event)\"\r\n          [showCurrentPageReport]=\"\r\n            tableProperties.paginatorProperties.showCurrentPageReport\r\n          \"\r\n          [currentPageReportTemplate]=\"\r\n            tableProperties.paginatorProperties.currentPageReportTemplate\r\n          \"\r\n        ></p-paginator>\r\n      </div>\r\n    </div>\r\n  </ng-template>\r\n</p-table>\r\n","export enum ColorEnum {\r\n    PRIMARY = \"primary\",\r\n    ACCENT = \"accent\",\r\n    WARN = \"warn\",\r\n    DEFAULT = \"DEFAULT\",\r\n\r\n}\r\n","export enum SortOrderEnum {\r\n     DESC='desc',\r\n     ASC='asc',\r\n\r\n}\r\n","export class FilterColumnTypeEnum {\r\n    public    TEXT =1;\r\n    public  DROPDOWN=2;\r\n    public  DATE_Hij=3;\r\n    public  DATE_GEO=4;\r\n\r\n\r\n    constructor() {\r\n    }\r\n\r\n\r\n\r\n}\r\n"," export enum InputLanguageEnum{\r\n  english = 'english',\r\n  arabic = 'arabic'\r\n}\r\n","export enum InputDisplay {\r\n\r\n  Flex = 'flex',\r\n  InlineFlex = 'inline-flex',\r\n  InlineBlock = 'inline-block',\r\n  Inline = 'inline',\r\n  Block = 'block',\r\n  Contents = 'contents',\r\n  InlineGrid = 'inline-grid',\r\n  InlineTable = 'inline-table',\r\n  TableRow = 'table-row',\r\n  None = 'none',\r\n  Initial = 'initial',\r\n  Inherit = 'inherit'\r\n\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {InputLanguageEnum} from \"../enum/input-language.enum\";\r\nimport {TranslateModule} from \"@ngx-translate/core\";\r\nimport {FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators} from \"@angular/forms\";\r\nimport {CommonModule, NgIf} from \"@angular/common\";\r\nimport {InputTextModule} from \"primeng/inputtext\";\r\nimport {InputDisplay} from \"../enum/input-display\";\r\n\r\n@Component({\r\n  selector: 'g-input-text',\r\n  templateUrl: './input-text.component.html',\r\n  styleUrls: ['./input-text.component.scss'],\r\n  standalone: true,\r\n  imports: [\r\n    TranslateModule, FormsModule, NgIf, InputTextModule, ReactiveFormsModule,\r\n    CommonModule\r\n  ]\r\n})\r\nexport class InputTextComponent implements OnInit {\r\n  protected readonly InputLanguageEnum = InputLanguageEnum;\r\n  protected readonly Validators = Validators;\r\n  @Output() valueChange = new EventEmitter<any>();\r\n  @Output() liveValueChange = new EventEmitter<any>();\r\n  @Input() placeholder: string = '';\r\n  @Input() label: string;\r\n  @Input() labelText: string;\r\n  @Input() hint: string;\r\n  @Input() fontWeight: string | number = '400';\r\n  @Input() inputFormControl: any;\r\n  display: InputDisplay = InputDisplay.Flex;\r\n  @Input() customValidationsKeys: string[];\r\n  @Input() patternErrorMessage: string;\r\n  @Input() maxCharacters: number = 100;\r\n  @Input() uniqueInputId: string;\r\n\r\n  onBlurChangeValue(event: any) {\r\n    this.valueChange.emit(event.target.value);\r\n  }\r\n\r\n  onInputChangeValue(event: any) {\r\n    this.liveValueChange.emit(event.target.value);\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    if (!this.inputFormControl)\r\n      throw new Error('Yo must provide inputFormControl as input => Example :' +\r\n        '[inputFormControl]=\"yourFormGroup.get(yourFormControllerName)\"');\r\n  }\r\n}\r\n","<ng-container *ngIf=\"inputFormControl\">\r\n  <div>\r\n    <label [attr.for]=\"uniqueInputId\" class=\"input-label\">{{ label ? (label | translate) : labelText }}\r\n      <span *ngIf=\"inputFormControl.hasValidator(Validators.required)\"\r\n            [ngClass]=\"{\r\n            'error2': inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.required,\r\n      'default-color': !inputFormControl.errors\r\n      }\">\r\n    *\r\n  </span>\r\n    </label>\r\n    <div class=\"input-text-wrapper-class\">\r\n      <input type=\"text\" pInputText\r\n           [maxlength]=\"maxCharacters\"\r\n           (blur)=\"onBlurChangeValue($event)\"\r\n           (input)=\"onInputChangeValue($event)\"\r\n           class=\"inputText formInput\"\r\n           [formControl]=\"inputFormControl\"\r\n           [placeholder]=\"placeholder|translate\"\r\n           [ngClass]=\"{'error1': inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.required}\"\r\n           [attr.id]=\"uniqueInputId\"\r\n    />\r\n    </div>\r\n    <div *ngIf=\"inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.required\"\r\n         class=\"error\">\r\n      <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n        <path\r\n          d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n          fill=\"#B42318\"/>\r\n        <path\r\n          d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n          fill=\"#B42318\"/>\r\n        <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n              d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n              fill=\"#B42318\"/>\r\n      </svg>\r\n      {{ 'requiredErrorMessage' | translate }}\r\n    </div>\r\n\r\n    <div\r\n      *ngIf=\"inputFormControl.touched && inputFormControl.errors && !inputFormControl.errors.pattern && !inputFormControl.errors.required && !customValidationsKeys\"\r\n      class=\"error\">\r\n      <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n        <path\r\n          d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n          fill=\"#B42318\"/>\r\n        <path\r\n          d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n          fill=\"#B42318\"/>\r\n        <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n              d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n              fill=\"#B42318\"/>\r\n      </svg>\r\n      {{ 'genericErrorMsg' | translate }}\r\n    </div>\r\n\r\n    <div *ngIf=\"inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.pattern\"\r\n         class=\"error\">\r\n      <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n        <path\r\n          d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n          fill=\"#B42318\"/>\r\n        <path\r\n          d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n          fill=\"#B42318\"/>\r\n        <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n              d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n              fill=\"#B42318\"/>\r\n      </svg>\r\n      {{ patternErrorMessage || 'genericErrorMsg' | translate }}\r\n    </div>\r\n\r\n    <ng-container *ngIf=\"customValidationsKeys\">\r\n      <div *ngFor=\"let key of customValidationsKeys\">\r\n        <div\r\n          *ngIf=\"inputFormControl.touched && inputFormControl.errors && !inputFormControl.errors.pattern && !inputFormControl.errors.required\"\r\n          class=\"error\">\r\n          <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n            <path\r\n              d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n              fill=\"#B42318\"/>\r\n            <path\r\n              d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n              fill=\"#B42318\"/>\r\n            <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n                  d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n                  fill=\"#B42318\"/>\r\n          </svg>\r\n          {{ inputFormControl.errors[key] | translate }}\r\n        </div>\r\n      </div>\r\n    </ng-container>\r\n\r\n    <div class=\"mat-hint mb-2\" *ngIf=\"hint\">\r\n      {{ hint|translate }}<span>&nbsp;</span>\r\n    </div>\r\n  </div>\r\n</ng-container>\r\n","export enum InputNumberType {\r\n      currency = 'currency',\r\n      decimal = 'decimal',\r\n      integer = 'integer'\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {TranslateModule} from \"@ngx-translate/core\";\r\nimport {InputNumberModule} from \"primeng/inputnumber\";\r\nimport {FormsModule, ReactiveFormsModule, Validators} from \"@angular/forms\";\r\nimport {CommonModule, NgIf} from \"@angular/common\";\r\nimport {InputDisplay} from \"../enum/input-display\";\r\nimport {InputNumberType} from \"../enum/input-number-type\";\r\n\r\n@Component({\r\n  selector: 'g-input-number',\r\n  templateUrl: './input-number.component.html',\r\n  styleUrls: ['./input-number.component.scss'],\r\n  standalone: true,\r\n  imports: [\r\n    TranslateModule,\r\n    InputNumberModule,\r\n    FormsModule,\r\n    NgIf,\r\n    CommonModule,\r\n    ReactiveFormsModule\r\n  ]\r\n})\r\nexport class InputNumberComponent implements OnInit {\r\n  protected readonly InputNumberType = InputNumberType;\r\n  protected readonly Validators = Validators;\r\n  @Output() valueChange = new EventEmitter<any>();\r\n  @Output() liveValueChange = new EventEmitter<any>();\r\n  @Input() label: string;\r\n  @Input() labelText: string;\r\n  @Input() inputId: string;\r\n  @Input() minFrac: number = 2;\r\n  @Input() accept: string = InputNumberType.integer;\r\n  @Input() hint: string;\r\n  @Input() fontWeight: string | number = '500';\r\n  display: InputDisplay = InputDisplay.Flex;\r\n  @Input() placeholder: string = '';\r\n  @Input() inputFormControl: any;\r\n  @Input() customValidationsKeys: string[];\r\n  @Input() patternErrorMessage: string;\r\n  @Input() maxDigits: number = 50;\r\n\r\n  onBlurChangeValue(event: any) {\r\n    this.valueChange.emit(event.target.value);\r\n  }\r\n\r\n  onInputChangeValue(event: any) {\r\n    this.liveValueChange.emit(event.value);\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    if (!this.inputFormControl)\r\n      throw new Error('Yo must provide inputFormControl as input => Example :' +\r\n        '[inputFormControl]=\"yourFormGroup.get(yourFormControllerName)\"');\r\n  }\r\n\r\n  onPaste($event: ClipboardEvent) {\r\n    this.inputFormControl.setValue(this.inputFormControl.value.toString().substring(0, this.maxDigits));\r\n    this.inputFormControl.updateValueAndValidity();\r\n  }\r\n}\r\n","<ng-container *ngIf=\"inputFormControl\">\r\n  <label>{{ label ? (label | translate) : labelText }}\r\n    <span *ngIf=\"inputFormControl.hasValidator(Validators.required) && label\"\r\n          [ngClass]=\"{\r\n              'error1': inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.required,\r\n              'default-color': !inputFormControl.errors\r\n              }\">\r\n    *\r\n  </span>\r\n  </label>\r\n\r\n  <div class=\"input-number-wrapper-class\" *ngIf=\"accept == InputNumberType.integer\">\r\n    <p-inputNumber\r\n      [id]=\"inputId\"\r\n      [formControl]=\"inputFormControl\"\r\n      [useGrouping]=\"false\"\r\n      [placeholder]=\"placeholder|translate\"\r\n      (onBlur)=\"onBlurChangeValue($event)\"\r\n      (onInput)=\"onInputChangeValue($event)\"\r\n      [maxlength]=\"maxDigits\"\r\n      (paste)=\"onPaste($event)\"\r\n    >\r\n    </p-inputNumber>\r\n  </div>\r\n  <div class=\"input-number-wrapper-class\" *ngIf=\"accept == InputNumberType.decimal\">\r\n    <p-inputNumber\r\n      [id]=\"inputId\"\r\n      [formControl]=\"inputFormControl\"\r\n      [mode]=\"accept\"\r\n      [minFractionDigits]=\"minFrac\"\r\n      [placeholder]=\"placeholder|translate\"\r\n      (onBlur)=\"onBlurChangeValue($event)\"\r\n      (onInput)=\"onInputChangeValue($event)\"\r\n      [maxlength]=\"maxDigits\"\r\n      (paste)=\"onPaste($event)\"\r\n      class=\"formInput\"\r\n    >\r\n    </p-inputNumber>\r\n  </div>\r\n\r\n  <div *ngIf=\"inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.required\"\r\n       class=\"error\">\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n      <path\r\n        d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n        fill=\"#B42318\"/>\r\n      <path\r\n        d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n        fill=\"#B42318\"/>\r\n      <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n            d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n            fill=\"#B42318\"/>\r\n    </svg>\r\n    {{ 'requiredErrorMessage' | translate }}\r\n  </div>\r\n\r\n  <div\r\n    *ngIf=\"inputFormControl.touched && inputFormControl.errors && !inputFormControl.errors.pattern && !inputFormControl.errors.required && !customValidationsKeys\"\r\n    class=\"error\">\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n      <path\r\n        d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n        fill=\"#B42318\"/>\r\n      <path\r\n        d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n        fill=\"#B42318\"/>\r\n      <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n            d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n            fill=\"#B42318\"/>\r\n    </svg>\r\n    {{ 'genericErrorMsg' | translate }}\r\n  </div>\r\n\r\n  <div *ngIf=\"inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.pattern\"\r\n       class=\"error\">\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n      <path\r\n        d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n        fill=\"#B42318\"/>\r\n      <path\r\n        d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n        fill=\"#B42318\"/>\r\n      <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n            d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n            fill=\"#B42318\"/>\r\n    </svg>\r\n    {{ patternErrorMessage || 'genericErrorMsg' | translate }}\r\n  </div>\r\n\r\n  <ng-container *ngIf=\"customValidationsKeys\">\r\n    <div *ngFor=\"let key of customValidationsKeys\">\r\n      <div\r\n        *ngIf=\"inputFormControl.touched && inputFormControl.errors && !inputFormControl.errors.pattern && !inputFormControl.errors.required && inputFormControl.errors[key]\"\r\n        class=\"error\">\r\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n          <path\r\n            d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n            fill=\"#B42318\"/>\r\n          <path\r\n            d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n            fill=\"#B42318\"/>\r\n          <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n                d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n                fill=\"#B42318\"/>\r\n        </svg>\r\n        {{ inputFormControl.errors[key] | translate }}\r\n      </div>\r\n    </div>\r\n  </ng-container>\r\n\r\n  <div class=\"mat-hint mb-2\" *ngIf=\"hint\">\r\n    {{ hint|translate }}<span>&nbsp;</span>\r\n  </div>\r\n</ng-container>\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {TranslateModule} from \"@ngx-translate/core\";\r\nimport {CheckboxModule} from \"primeng/checkbox\";\r\nimport {FormsModule, ReactiveFormsModule, Validators} from \"@angular/forms\";\r\nimport {CommonModule, NgFor, NgIf} from \"@angular/common\";\r\nimport {InputDisplay} from \"../enum/input-display\";\r\nimport {RadioButtonModule} from \"primeng/radiobutton\";\r\nimport {AccordionModule} from \"primeng/accordion\";\r\n\r\n@Component({\r\n  selector: 'g-checkbox',\r\n  templateUrl: './checkbox.component.html',\r\n  styleUrls: ['./checkbox.component.scss'],\r\n  standalone: true,\r\n  imports: [\r\n    TranslateModule,\r\n    CheckboxModule,\r\n    FormsModule,\r\n    NgFor,\r\n    NgIf,\r\n    CommonModule, ReactiveFormsModule, RadioButtonModule, AccordionModule\r\n  ]\r\n})\r\nexport class CheckboxComponent implements OnInit {\r\n  protected readonly Validators = Validators;\r\n  @Output() valueChange = new EventEmitter<any>();\r\n  @Input() label: string;\r\n  @Input() labelText: string;\r\n  @Input() patternErrorMessage: string;\r\n  @Input() checkBoxItems: any[] = [];\r\n  @Input() hint: string;\r\n  @Input() labelFontWeight: string | number = '500';\r\n  display: InputDisplay = InputDisplay.InlineFlex;\r\n  @Input() itemValue: string;\r\n  @Input() itemLabel: string;\r\n  @Input() inputFormControl: any;\r\n  @Input() customValidationsKeys: string[];\r\n  @Input() uniqueCheckboxId: string;\r\n  @Input() useAccordionWithCheckboxes: boolean = false;\r\n  @Input() useSelectAllWithAccordionCheckboxes: boolean = false;\r\n  @Input() trueFalse: boolean = false;\r\n  @Input() trueFalseItemLabel: string = 'set trueFalseItemLabel';\r\n  @Input() colSize?: number;\r\n  checkAll: boolean = false;\r\n\r\n  onCheckboxChange(event: any) {\r\n    this.valueChange.emit(event.checked);\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    if (!this.inputFormControl)\r\n      throw new Error('Yo must provide inputFormControl as input => Example :' +\r\n        '[inputFormControl]=\"yourFormGroup.get(yourFormControllerName)\"');\r\n    if (this.useAccordionWithCheckboxes && this.inputFormControl && this.inputFormControl.value && this.inputFormControl.value.length >= this.checkBoxItems.length)\r\n      this.checkAll = true;\r\n  }\r\n\r\n  selectAll(event: any) {\r\n    if (event.target.checked) {\r\n      this.inputFormControl.setValue(this.checkBoxItems.map(item => this.itemValue ? item[this.itemValue] :item));\r\n      this.inputFormControl.updateValueAndValidity();\r\n    } else {\r\n      this.inputFormControl.setValue([]);\r\n      this.inputFormControl.updateValueAndValidity();\r\n    }\r\n  }\r\n\r\n  protected readonly InputDisplay = InputDisplay;\r\n}\r\n","<ng-container *ngIf=\"inputFormControl\">\r\n  <label *ngIf=\"label\" [style.display]=\"InputDisplay.Block\"> {{ label ? (label | translate) : labelText }}\r\n    <span *ngIf=\"inputFormControl.hasValidator(Validators.required)\"\r\n          [ngClass]=\"{\r\n        'error1':  inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.required,\r\n        'default-color': !inputFormControl.errors\r\n        }\">\r\n    *\r\n  </span>\r\n  </label>\r\n  <p-checkbox *ngIf=\"trueFalse\"\r\n              [label]=\"trueFalseItemLabel\"\r\n              [formControl]=\"inputFormControl\"\r\n              [binary]=\"trueFalse\"\r\n              (onChange)=\"onCheckboxChange($event)\"\r\n              class=\"formInput elm-checkbox\"\r\n  >\r\n  </p-checkbox>\r\n  <p-accordion *ngIf=\"!trueFalse && useAccordionWithCheckboxes\" [activeIndex]=\"0\">\r\n    <p-accordionTab>\r\n      <ng-template pTemplate=\"header\">\r\n        <div class=\"header-checkbox\">\r\n          <!--          <p-checkbox *ngIf=\"useSelectAllWithAccordionCheckboxes\" class=\"elm-checkbox\" [(ngModel)]=\"checkAll\" (click)=\"$event.stopPropagation()\" (onChange)=\"selectAll($event)\"-->\r\n          <!--                      [binary]=\"true\"></p-checkbox>-->\r\n          <input *ngIf=\"useSelectAllWithAccordionCheckboxes\"\r\n                 (click)=\"$event.stopPropagation()\"\r\n                 (change)=\"selectAll($event)\"\r\n                 class=\"form-check-input elm-checkbox\"\r\n                 type=\"checkbox\"\r\n                 id=\"flexCheckChecked\"\r\n                 [checked]=\"inputFormControl && inputFormControl.value && inputFormControl.value.length >= checkBoxItems.length\">\r\n        </div>\r\n        <div class=\"header-label\">{{ label ? (label | translate) : labelText }}</div>\r\n      </ng-template>\r\n      <div *ngFor=\"let category of checkBoxItems\" class=\"col-md-{{colSize || 4}} col-sm-12 checkboxDiv\">\r\n        <p-checkbox [value]=\"itemValue ? category[itemValue] : category\"\r\n                    [label]=\"category[itemLabel]\"\r\n                    [formControl]=\"inputFormControl\"\r\n                    [inputId]=\"category[this.itemValue]+'c'\"\r\n                    (onChange)=\"onCheckboxChange($event)\"\r\n                    class=\"formInput elm-checkbox\"\r\n        >\r\n        </p-checkbox>\r\n      </div>\r\n    </p-accordionTab>\r\n  </p-accordion>\r\n  <ng-container *ngIf=\"!trueFalse && !useAccordionWithCheckboxes\">\r\n    <div *ngFor=\"let category of checkBoxItems\" class=\"col-md-{{colSize || 4}} col-sm-12 checkboxDiv\">\r\n      <p-checkbox [value]=\"itemValue ? category[itemValue] : category\"\r\n                  [label]=\"category[itemLabel]\"\r\n                  [formControl]=\"inputFormControl\"\r\n                  [inputId]=\"category[this.itemValue]+'c'\"\r\n                  (onChange)=\"onCheckboxChange($event)\"\r\n                  class=\"formInput elm-checkbox\"\r\n      >\r\n      </p-checkbox>\r\n    </div>\r\n  </ng-container>\r\n\r\n  <div *ngIf=\"inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.required\"\r\n       class=\"error\">\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n      <path\r\n        d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n        fill=\"#B42318\"/>\r\n      <path\r\n        d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n        fill=\"#B42318\"/>\r\n      <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n            d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n            fill=\"#B42318\"/>\r\n    </svg>\r\n    {{ 'requiredErrorMessage' | translate }}\r\n  </div>\r\n\r\n  <div\r\n    *ngIf=\"inputFormControl.touched && inputFormControl.errors && !inputFormControl.errors.pattern && !inputFormControl.errors.required && !customValidationsKeys\"\r\n    class=\"error\">\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n      <path\r\n        d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n        fill=\"#B42318\"/>\r\n      <path\r\n        d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n        fill=\"#B42318\"/>\r\n      <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n            d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n            fill=\"#B42318\"/>\r\n    </svg>\r\n    {{ 'genericErrorMsg' | translate }}\r\n  </div>\r\n\r\n  <div *ngIf=\"inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.pattern\"\r\n       class=\"error\">\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n      <path\r\n        d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n        fill=\"#B42318\"/>\r\n      <path\r\n        d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n        fill=\"#B42318\"/>\r\n      <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n            d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n            fill=\"#B42318\"/>\r\n    </svg>\r\n    {{ patternErrorMessage || 'genericErrorMsg' | translate }}\r\n  </div>\r\n\r\n  <ng-container *ngIf=\"customValidationsKeys\">\r\n    <div *ngFor=\"let key of customValidationsKeys\">\r\n      <div\r\n        *ngIf=\"inputFormControl.touched && inputFormControl.errors && !inputFormControl.errors.pattern && !inputFormControl.errors.required && inputFormControl.errors[key]\"\r\n        class=\"error\">\r\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n          <path\r\n            d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n            fill=\"#B42318\"/>\r\n          <path\r\n            d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n            fill=\"#B42318\"/>\r\n          <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n                d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n                fill=\"#B42318\"/>\r\n        </svg>\r\n        {{ (inputFormControl.errors[key]) | translate }}\r\n      </div>\r\n    </div>\r\n  </ng-container>\r\n\r\n  <div class=\"mat-hint mb-2\" *ngIf=\"hint\">\r\n    {{ hint|translate }}<span>&nbsp;</span>\r\n  </div>\r\n</ng-container>\r\n","import {ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {LangChangeEvent, TranslateModule, TranslateService} from \"@ngx-translate/core\";\r\nimport {DropdownModule} from \"primeng/dropdown\";\r\nimport {FormsModule, ReactiveFormsModule, Validators} from \"@angular/forms\";\r\nimport {CommonModule, NgIf} from \"@angular/common\";\r\nimport {InputDisplay} from \"../enum/input-display\";\r\n\r\n@Component({\r\n  selector: 'g-dropdown',\r\n  templateUrl: './dropdown.component.html',\r\n  styleUrls: ['./dropdown.component.scss'],\r\n  imports: [\r\n    TranslateModule,\r\n    DropdownModule,\r\n    FormsModule,\r\n    NgIf,\r\n    CommonModule,\r\n    ReactiveFormsModule\r\n  ],\r\n  standalone: true\r\n})\r\nexport class DropdownComponent implements OnInit {\r\n  protected readonly Validators = Validators;\r\n  @Output() valueChange = new EventEmitter<any>();\r\n  @Input() label: string;\r\n  @Input() labelText: string;\r\n  @Input() options: any[];\r\n  @Input() placeholder: string;\r\n  @Input() optionLabel: string // TODO check lang\r\n  @Input() optionValue: string;\r\n  @Input() hint: string;\r\n  @Input() labelFontWeight: string | number = '500';\r\n  display: InputDisplay = InputDisplay.Flex;\r\n  @Input() inputFormControl: any;\r\n  @Input() customValidationsKeys: string[];\r\n  @Input() patternErrorMessage: string;\r\n  @Input() displayFirstItem: boolean = false;\r\n  @Input() uniqueComponentId: string = 'dropDownId';\r\n  @Input() appendToElement: string = '';\r\n  @Input() showClearBtn: boolean = true;\r\n  @Input() filterOptions: boolean = true;\r\n\r\n  constructor(private cdr: ChangeDetectorRef, private translateService: TranslateService) {\r\n    this.translateService.onLangChange.subscribe((langChangeEvent: LangChangeEvent) => {\r\n      this.cdr.detectChanges();\r\n    })\r\n  }\r\n\r\n  changeValue(event: any) {\r\n    this.valueChange.emit(event.value);\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    if (!this.inputFormControl)\r\n      throw new Error('Yo must provide inputFormControl as input => Example :' +\r\n        '[inputFormControl]=\"yourFormGroup.get(yourFormControllerName)\"');\r\n  }\r\n}\r\n","<ng-container *ngIf=\"inputFormControl\">\r\n  <label\r\n  >{{ label ? (label | translate) : labelText }}\r\n    <span\r\n      *ngIf=\"inputFormControl.hasValidator(Validators.required)\"\r\n      [ngClass]=\"{\r\n        error1:\r\n          inputFormControl.touched &&\r\n          inputFormControl.errors &&\r\n          inputFormControl.errors.required,\r\n        'default-color': !inputFormControl.errors\r\n      }\"\r\n    >\r\n      *\r\n    </span>\r\n  </label>\r\n\r\n  <p-dropdown\r\n    [appendTo]=\"appendToElement\"\r\n    [formControl]=\"inputFormControl\"\r\n    [options]=\"options\"\r\n    [placeholder]=\"placeholder | translate\"\r\n    [optionLabel]=\"optionLabel\"\r\n    [optionValue]=\"optionValue\"\r\n    [filter]=\"filterOptions\"\r\n    [filterBy]=\"optionLabel\"\r\n    [showClear]=\"showClearBtn\"\r\n    (onChange)=\"changeValue($event)\"\r\n    [autoDisplayFirst]=\"displayFirstItem\"\r\n    [id]=\"uniqueComponentId\"\r\n    class=\"formInput\"\r\n  ></p-dropdown>\r\n  <div\r\n    *ngIf=\"\r\n      inputFormControl.touched &&\r\n      inputFormControl.errors &&\r\n      inputFormControl.errors.required\r\n    \"\r\n    class=\"error\"\r\n  >\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n      <path\r\n        d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n        fill=\"#B42318\"/>\r\n      <path\r\n        d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n        fill=\"#B42318\"/>\r\n      <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n            d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n            fill=\"#B42318\"/>\r\n    </svg>\r\n    {{ \"requiredErrorMessage\" | translate }}\r\n  </div>\r\n\r\n  <div\r\n    *ngIf=\"\r\n      inputFormControl.touched &&\r\n      inputFormControl.errors &&\r\n      !inputFormControl.errors.required &&\r\n      !customValidationsKeys\r\n    \"\r\n    class=\"error\"\r\n  >\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n      <path\r\n        d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n        fill=\"#B42318\"/>\r\n      <path\r\n        d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n        fill=\"#B42318\"/>\r\n      <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n            d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n            fill=\"#B42318\"/>\r\n    </svg>\r\n    {{ \"genericErrorMsg\" | translate }}\r\n  </div>\r\n\r\n  <div\r\n    *ngIf=\"\r\n      inputFormControl.touched &&\r\n      inputFormControl.errors &&\r\n      !inputFormControl.errors.pattern &&\r\n      !inputFormControl.errors.required &&\r\n      !customValidationsKeys\r\n    \"\r\n    class=\"error\"\r\n  >\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n      <path\r\n        d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n        fill=\"#B42318\"/>\r\n      <path\r\n        d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n        fill=\"#B42318\"/>\r\n      <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n            d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n            fill=\"#B42318\"/>\r\n    </svg>\r\n    {{ \"genericErrorMsg\" | translate }}\r\n  </div>\r\n\r\n  <div\r\n    *ngIf=\"\r\n      inputFormControl.touched &&\r\n      inputFormControl.errors &&\r\n      inputFormControl.errors.pattern\r\n    \"\r\n    class=\"error\"\r\n  >\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n      <path\r\n        d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n        fill=\"#B42318\"/>\r\n      <path\r\n        d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n        fill=\"#B42318\"/>\r\n      <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n            d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n            fill=\"#B42318\"/>\r\n    </svg>\r\n    {{ patternErrorMessage || \"genericErrorMsg\" | translate }}\r\n  </div>\r\n\r\n  <ng-container *ngIf=\"customValidationsKeys\">\r\n    <div *ngFor=\"let key of customValidationsKeys\">\r\n      <div\r\n        *ngIf=\"\r\n          inputFormControl.touched &&\r\n          inputFormControl.errors &&\r\n          !inputFormControl.errors.pattern &&\r\n          !inputFormControl.errors.required\r\n          && inputFormControl.errors[key]\r\n        \"\r\n        class=\"error\"\r\n      >\r\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n          <path\r\n            d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n            fill=\"#B42318\"/>\r\n          <path\r\n            d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n            fill=\"#B42318\"/>\r\n          <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n                d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n                fill=\"#B42318\"/>\r\n        </svg>\r\n        {{ inputFormControl.errors[key] | translate }}\r\n      </div>\r\n    </div>\r\n  </ng-container>\r\n\r\n  <div class=\"mat-hint mb-2\" *ngIf=\"hint\">{{ hint | translate }}<span>&nbsp;</span></div>\r\n</ng-container>\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {TranslateModule} from \"@ngx-translate/core\";\r\nimport {InputNumberModule} from \"primeng/inputnumber\";\r\nimport {FormsModule, ReactiveFormsModule, Validators} from \"@angular/forms\";\r\nimport {CommonModule, DatePipe, NgIf} from \"@angular/common\";\r\nimport {CalendarModule} from \"primeng/calendar\";\r\nimport {InputDisplay} from \"../../enum/input-display\";\r\nimport {isValidDate} from \"rxjs/internal/util/isDate\";\r\n\r\n@Component({\r\n  selector: 'g-calendar',\r\n  templateUrl: './calendar.component.html',\r\n  styleUrls: ['./calendar.component.scss'],\r\n  standalone: true,\r\n  imports: [\r\n    TranslateModule,\r\n    InputNumberModule,\r\n    FormsModule,\r\n    NgIf,\r\n    CalendarModule,\r\n    CommonModule,\r\n    ReactiveFormsModule\r\n  ],\r\n  providers: [DatePipe]\r\n})\r\nexport class CalendarComponent implements OnInit {\r\n  protected readonly Validators = Validators;\r\n  @Input() label: string;\r\n  @Input() labelText: string;\r\n  @Input() showIcon: boolean = true;\r\n  @Input() showTodayBtn: boolean = false;\r\n  @Input() showClearBtn: boolean = true;\r\n  @Input() showClearVal: boolean = false;\r\n  @Input() alwaysOpen: boolean = false;\r\n  @Output() valueChange = new EventEmitter<any>();\r\n  dateFormat: string = 'dd-mm-yy';\r\n  @Input() startDate: string;\r\n  @Input() endDate: string;\r\n  @Input() hint: string;\r\n  @Input() labelFontWeight: string | number = '500';\r\n  @Input() inputFormControl: any;\r\n  @Input() customValidationsKeys: string[] = [];\r\n  @Input() view: 'month' | 'year' | 'date' = 'date';\r\n  @Input() patternErrorMessage: string;\r\n  @Input() appendToElement: string = 'body';\r\n  @Input() placeholder: string;\r\n  @Input() disabledGreDates: string[] = [];\r\n  // @Input() enabledGreDates: string[] = [];\r\n  @Input() disabledGreDaysOfWeekIndexes: number[] = [];\r\n  //@Input() enabledGreDays: number[] = [];\r\n  @Input() panelStyleClass: string;\r\n\r\n\r\n  display: InputDisplay = InputDisplay.InlineFlex;\r\n  minDate: Date;\r\n  maxDate: Date;\r\n  defaultDate: Date;\r\n  disabledDates: Date[] = [];\r\n  enabledDates: Date[] = [];\r\n\r\n  constructor(private _datePipe: DatePipe) {\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    if (!this.inputFormControl)\r\n      throw new Error('Yo must provide inputFormControl as input => Example :' +\r\n        '[inputFormControl]=\"yourFormGroup.get(yourFormControllerName)\"');\r\n    else {\r\n      this.initViewFormat()\r\n      this.handleDate();\r\n    }\r\n  }\r\n\r\n  onSelect($event: any) {\r\n    let date = this.formatDate($event);\r\n    this.inputFormControl.setValue(date);\r\n    this.valueChange.emit(date);\r\n  }\r\n\r\n  handleDate() {\r\n    let parts;\r\n    if (this.startDate) {\r\n      parts = this.startDate.split('-');\r\n      let minMonth = parseInt(parts[1], 10);\r\n      let minYear = parseInt(parts[2], 10);\r\n      let minDay = parseInt(parts[0], 10);\r\n      // this.minDate = new Date();\r\n      // this.minDate.setDate(minDay);\r\n      // this.minDate.setMonth(minMonth - 1);\r\n      // this.minDate.setFullYear(minYear);\r\n      this.minDate = new Date(minYear, minMonth - 1, minDay, 0, 0, 0);\r\n      this.defaultDate = this.minDate;\r\n    }\r\n    if (this.endDate) {\r\n      parts = this.endDate.split('-');\r\n      let maxMonth = parseInt(parts[1], 10);\r\n      let maxYear = parseInt(parts[2], 10);\r\n      let maxDay = parseInt(parts[0], 10);\r\n      this.maxDate = new Date();\r\n      // this.maxDate.setDate(maxDay);\r\n      // this.maxDate.setMonth(maxMonth - 1);\r\n      // this.maxDate.setFullYear(maxYear);\r\n      this.maxDate = new Date(maxYear, maxMonth - 1, maxDay, 0, 0, 0);\r\n    }\r\n    if (this.endDate && !this.startDate) {\r\n      this.defaultDate = this.maxDate;\r\n    }\r\n    // Handle disabledGreDates\r\n    if (this.disabledGreDates && this.disabledGreDates?.length > 0) {\r\n      this.disabledDates = this.disabledGreDates.map(dateStr => {\r\n        parts = dateStr.split('-');\r\n        let day = parseInt(parts[0], 10);\r\n        let month = parseInt(parts[1], 10);\r\n        let year = parseInt(parts[2], 10);\r\n        // let date = new Date();\r\n        // date.setDate(day);\r\n        // date.setMonth(month - 1);\r\n        // date.setFullYear(year);\r\n        return new Date(year, month - 1, day, 0, 0, 0);\r\n      });\r\n    }\r\n\r\n    // Handle enabledGreDates\r\n    // if (this.enabledGreDates && this.enabledGreDates?.length > 0) {\r\n    //   this.enabledDates = this.enabledGreDates.map(dateStr => {\r\n    //     parts = dateStr.split('-');\r\n    //     let day = parseInt(parts[0], 10);\r\n    //     let month = parseInt(parts[1], 10);\r\n    //     let year = parseInt(parts[2], 10);\r\n    //     let date = new Date();\r\n    //     date.setDate(day);\r\n    //     date.setMonth(month - 1);\r\n    //     date.setFullYear(year);\r\n    //     return date;\r\n    //   });\r\n    // }\r\n  }\r\n\r\n  private initViewFormat() {\r\n    switch (this.view) {\r\n      case \"month\":\r\n        this.dateFormat = 'mm-yy';\r\n        break;\r\n      case \"year\":\r\n        this.dateFormat = 'yy';\r\n        break;\r\n    }\r\n  }\r\n\r\n  private formatDate(dateToFormat: any): string | null {\r\n    if (isValidDate(dateToFormat)) {\r\n      switch (this.view) {\r\n        case \"date\":\r\n          return this._datePipe.transform(dateToFormat, 'dd-MM-yyyy');\r\n        case \"month\":\r\n          return this._datePipe.transform(dateToFormat, 'MM-yyyy')\r\n        case \"year\":\r\n          return this._datePipe.transform(dateToFormat, 'yyyy')\r\n      }\r\n    }\r\n    return dateToFormat;\r\n  }\r\n\r\n  private parseDate(dateStr: any) {\r\n    switch (this.view) {\r\n      case \"date\":\r\n        if (!dateStr.includes('-'))\r\n          throw new Error('Invalid Date format, Date must be in form of \"dd-MM-yyyy\" , Example \"21-09-2023\"');\r\n        else {\r\n          let parts = dateStr.split('-');\r\n          if (parts.length != 3)\r\n            throw new Error('Invalid Date format, Date must be in form of \"dd-MM-yyyy\" , Example \"21-09-2023\"');\r\n          else {\r\n            // let date = new Date();\r\n            // date.setDate(parseInt(parts[0], 10));\r\n            // date.setMonth(parseInt(parts[1], 10) - 1);\r\n            // date.setFullYear(parseInt(parts[2], 10));\r\n            let date = new Date(parseInt(parts[2], 10), parseInt(parts[1], 10) - 1, parseInt(parts[0], 10), 0, 0, 0);\r\n            this.inputFormControl.setValue(date);\r\n          }\r\n        }\r\n        break;\r\n      case \"month\":\r\n        if (!dateStr.includes('-'))\r\n          throw new Error('Month Date View , Invalid Date format, Date must in form of \"MM-yyyy\" , Example \"09-2023\"');\r\n        else {\r\n          let parts = dateStr.split('-');\r\n          if (parts.length != 2)\r\n            throw new Error('Month Date View , Invalid Date format , Date must in form of \"MM-yyyy\" , Example \"09-2023\"');\r\n          else {\r\n            // let date = new Date();\r\n            // date.setDate(parseInt('01', 10));\r\n            // date.setMonth(parseInt(parts[0], 10) - 1);\r\n            // date.setFullYear(parseInt(parts[1], 10));\r\n            let date = new Date(parseInt(parts[1], 10), parseInt(parts[0], 10) - 1, parseInt('01', 10), 0, 0, 0);\r\n            this.inputFormControl.setValue(date);\r\n          }\r\n        }\r\n        break;\r\n      case \"year\":\r\n        if (dateStr.includes('-'))\r\n          throw new Error('Month Date View , Invalid Date format Date must in form of \"yyyy\" , Example \"2023\" ');\r\n        else {\r\n          // let date = new Date();\r\n          // date.setDate(parseInt('01', 10));\r\n          // date.setMonth(parseInt('01', 10) - 1);\r\n          // date.setFullYear(parseInt(dateStr, 10));\r\n          let date = new Date(parseInt(dateStr, 10), parseInt('01', 10) - 1, parseInt('01', 10), 0, 0, 0);\r\n          this.inputFormControl.setValue(date);\r\n        }\r\n        break;\r\n    }\r\n  }\r\n\r\n  clearDate(): void {\r\n    this.inputFormControl.setValue(null);\r\n    this.inputFormControl.updateValueAndValidity();\r\n  }\r\n\r\n  chooseCurrentCalendarDate() {\r\n\r\n  }\r\n\r\n  onShowCalendarPopup() {\r\n    if (this.inputFormControl.value)\r\n      this.parseDate(this.inputFormControl.value);\r\n  }\r\n\r\n  onCloseCalendarPopup() {\r\n    if (this.inputFormControl.value)\r\n      this.onSelect(this.inputFormControl.value);\r\n  }\r\n}\r\n\r\n","<ng-container *ngIf=\"inputFormControl\">\r\n  <label>{{ label ? (label | translate) : labelText }}\r\n    <span *ngIf=\"inputFormControl.hasValidator(Validators.required)\"\r\n          [ngClass]=\"{\r\n        'error1':  inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.required,\r\n        'default-color': !inputFormControl.errors\r\n        }\">\r\n    *\r\n  </span>\r\n  </label>\r\n  <p-calendar\r\n    class=\"formInput\"\r\n    [appendTo]=\"appendToElement\"\r\n    [placeholder]=\"placeholder|translate\"\r\n    [formControl]=\"inputFormControl\"\r\n    [dateFormat]=\"dateFormat\"\r\n    [showIcon]=\"showIcon\"\r\n    [minDate]=\"minDate\"\r\n    [maxDate]=\"maxDate\"\r\n    [readonlyInput]=\"true\"\r\n    [view]=\"view\"\r\n    [defaultDate]=\"defaultDate\"\r\n    (onSelect)=\"onSelect($event)\"\r\n    (onShow)=\"onShowCalendarPopup()\"\r\n    (onClose)=\"onCloseCalendarPopup()\"\r\n    [showClear]=\"showClearVal\"\r\n    [disabledDays]=\"disabledGreDaysOfWeekIndexes\"\r\n    [disabledDates]=\"disabledDates\"\r\n    [inline]=\"alwaysOpen\"\r\n    [panelStyleClass]=\"panelStyleClass\"\r\n  >\r\n    <ng-container *ngIf=\"showTodayBtn || showClearBtn\">\r\n      <ng-template pTemplate=\"footer\">\r\n        <div class=\"p-datepicker-buttonbar ng-tns-c419082668-22 ng-star-inserted\" style=\"\">\r\n          <button *ngIf=\"showTodayBtn\" type=\"button\" pbutton=\"\" pripple=\"\"\r\n                  class=\"p-element p-ripple ng-tns-c419082668-22 p-button-text p-button p-component\"\r\n                  ng-reflect-label=\"Today\" ng-reflect-ng-class=\"p-button-text\" (click)=\"chooseCurrentCalendarDate()\">\r\n            <span class=\"p-button-label\">{{ 'primeng.today'|translate }}</span>\r\n          </button>\r\n          <button *ngIf=\"showClearBtn\" type=\"button\" pbutton=\"\" pripple=\"\"\r\n                  class=\"p-element p-ripple ng-tns-c419082668-22 p-button-text p-button p-component\"\r\n                  ng-reflect-label=\"Clear\" ng-reflect-ng-class=\"p-button-text\" (click)=\"clearDate()\"><span\r\n            class=\"p-button-label\">{{ 'primeng.clear'|translate }}</span>\r\n          </button>\r\n        </div>\r\n      </ng-template>\r\n    </ng-container>\r\n  </p-calendar>\r\n\r\n  <div *ngIf=\"inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.required\"\r\n       class=\"error\">\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n      <path\r\n        d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n        fill=\"#B42318\"/>\r\n      <path\r\n        d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n        fill=\"#B42318\"/>\r\n      <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n            d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n            fill=\"#B42318\"/>\r\n    </svg>\r\n    {{ 'requiredErrorMessage' | translate }}\r\n  </div>\r\n\r\n  <div\r\n    *ngIf=\"inputFormControl.touched && inputFormControl.errors && !inputFormControl.errors.pattern && !inputFormControl.errors.required && !customValidationsKeys\"\r\n    class=\"error\">\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n      <path\r\n        d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n        fill=\"#B42318\"/>\r\n      <path\r\n        d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n        fill=\"#B42318\"/>\r\n      <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n            d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n            fill=\"#B42318\"/>\r\n    </svg>\r\n    {{ 'genericErrorMsg' | translate }}\r\n  </div>\r\n\r\n  <div *ngIf=\"inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.pattern\"\r\n       class=\"error\">\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n      <path\r\n        d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n        fill=\"#B42318\"/>\r\n      <path\r\n        d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n        fill=\"#B42318\"/>\r\n      <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n            d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n            fill=\"#B42318\"/>\r\n    </svg>\r\n    {{ patternErrorMessage || 'genericErrorMsg' | translate }}\r\n  </div>\r\n\r\n  <ng-container *ngIf=\"customValidationsKeys\">\r\n    <div *ngFor=\"let key of customValidationsKeys\">\r\n      <div\r\n        *ngIf=\"inputFormControl.touched && inputFormControl.errors && !inputFormControl.errors.pattern && !inputFormControl.errors.required && inputFormControl.errors[key]\"\r\n        class=\"error\">\r\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n          <path\r\n            d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n            fill=\"#B42318\"/>\r\n          <path\r\n            d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n            fill=\"#B42318\"/>\r\n          <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n                d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n                fill=\"#B42318\"/>\r\n        </svg>\r\n        {{ (inputFormControl.errors[key]) | translate }}\r\n      </div>\r\n    </div>\r\n  </ng-container>\r\n\r\n  <div class=\"mat-hint mb-2\" *ngIf=\"hint\">\r\n    {{ hint|translate }}<span>&nbsp;</span>\r\n  </div>\r\n</ng-container>\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {TranslateModule} from \"@ngx-translate/core\";\r\nimport {InputNumberModule} from \"primeng/inputnumber\";\r\nimport {FormsModule, ReactiveFormsModule, Validators} from \"@angular/forms\";\r\nimport {CommonModule, DatePipe, NgIf} from \"@angular/common\";\r\nimport {CalendarModule} from \"primeng/calendar\";\r\nimport {InputDisplay} from \"../../enum/input-display\";\r\n\r\n@Component({\r\n  selector: 'g-date-time-calendar',\r\n  templateUrl: './date-time-calendar.component.html',\r\n  styleUrls: ['./date-time-calendar.component.scss'],\r\n  standalone: true,\r\n  imports: [\r\n    TranslateModule,\r\n    InputNumberModule,\r\n    FormsModule,\r\n    NgIf,\r\n    CalendarModule,\r\n    CommonModule,\r\n    ReactiveFormsModule,\r\n  ],\r\n  providers: [DatePipe]\r\n})\r\nexport class DateTimeCalendarComponent implements OnInit {\r\n  protected readonly Validators = Validators;\r\n  @Input() label: string;\r\n  @Input() labelText: string;\r\n  @Input() showIcon: boolean = true;\r\n  @Output() valueChange = new EventEmitter<any>();\r\n  dateFormat: string = 'dd-mm-yy';\r\n  @Input() startDate: Date;\r\n  @Input() endDate: Date;\r\n  @Input() hint: string;\r\n  @Input() labelFontWeight: string | number = '500';\r\n  @Input() inputFormControl: any;\r\n  @Input() customValidationsKeys: string[] = [];\r\n  @Input() showTime: boolean = true;\r\n  @Input() timeOnly: boolean = false;\r\n  @Input() alwaysOpen: boolean = false;\r\n  @Input() hourFormat: string = '12';\r\n  @Input() showButtonBar: boolean = false;\r\n  @Input() showClearVal: boolean = true;\r\n  @Input() showSeconds: boolean = false;\r\n  @Input() view: 'month' | 'year' | 'date' = 'date';\r\n  @Input() patternErrorMessage: string;\r\n  @Input() appendToElement: string = 'body';\r\n  @Input() placeholder: string;\r\n  @Input() disabledGreDates: Date[] = [];\r\n  // @Input() enabledGreDates: string[] = [];\r\n  @Input() disabledGreDaysOfWeekIndexes: number[] = [];\r\n  @Input() panelStyleClass: string;\r\n  //@Input() enabledGreDays: number[] = [];\r\n  display: InputDisplay = InputDisplay.InlineFlex;\r\n\r\n  ngOnInit(): void {\r\n    if (!this.inputFormControl)\r\n      throw new Error('Yo must provide inputFormControl as input => Example :' +\r\n        '[inputFormControl]=\"yourFormGroup.get(yourFormControllerName)\"');\r\n    else\r\n      this.initViewFormat()\r\n  }\r\n\r\n  onSelect($event: any) {\r\n    this.valueChange.emit($event);\r\n  }\r\n\r\n\r\n  private initViewFormat() {\r\n    switch (this.view) {\r\n      case \"month\":\r\n        this.dateFormat = 'mm-yy';\r\n        break;\r\n      case \"year\":\r\n        this.dateFormat = 'yy';\r\n        break;\r\n    }\r\n  }\r\n}\r\n\r\n","<ng-container *ngIf=\"inputFormControl\">\r\n  <label>{{ label ? (label | translate) : labelText }}\r\n    <span *ngIf=\"inputFormControl.hasValidator(Validators.required)\"\r\n          [ngClass]=\"{\r\n        'error1':  inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.required,\r\n        'default-color': !inputFormControl.errors\r\n        }\">\r\n    *\r\n  </span>\r\n  </label>\r\n  <p-calendar\r\n    class=\"formInput\"\r\n    [appendTo]=\"appendToElement\"\r\n    [placeholder]=\"placeholder|translate\"\r\n    [formControl]=\"inputFormControl\"\r\n    [dateFormat]=\"dateFormat\"\r\n    [showIcon]=\"showIcon\"\r\n    [showButtonBar]=\"showButtonBar\"\r\n    [minDate]=\"startDate\"\r\n    [maxDate]=\"endDate\"\r\n    [readonlyInput]=\"true\"\r\n    [showTime]=\"showTime\"\r\n    [view]=\"view\"\r\n    [timeOnly]=\"timeOnly\"\r\n    [hourFormat]=\"hourFormat\"\r\n    [showSeconds]=\"showSeconds\"\r\n    icon=\"fas fa-clock-o\"\r\n    (onSelect)=\"onSelect($event)\"\r\n    [showClear]=\"showClearVal\"\r\n    [disabledDays]=\"disabledGreDaysOfWeekIndexes\"\r\n    [disabledDates]=\"disabledGreDates\"\r\n    [inline]=\"alwaysOpen\"\r\n    [panelStyleClass]=\"panelStyleClass\"\r\n  >\r\n  </p-calendar>\r\n\r\n  <div *ngIf=\"inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.required\"\r\n       class=\"error\">\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n      <path\r\n        d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n        fill=\"#B42318\"/>\r\n      <path\r\n        d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n        fill=\"#B42318\"/>\r\n      <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n            d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n            fill=\"#B42318\"/>\r\n    </svg>\r\n    {{ 'requiredErrorMessage' | translate }}\r\n  </div>\r\n\r\n  <div\r\n    *ngIf=\"inputFormControl.touched && inputFormControl.errors && !inputFormControl.errors.pattern && !inputFormControl.errors.required && !customValidationsKeys\"\r\n    class=\"error\">\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n      <path\r\n        d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n        fill=\"#B42318\"/>\r\n      <path\r\n        d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n        fill=\"#B42318\"/>\r\n      <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n            d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n            fill=\"#B42318\"/>\r\n    </svg>\r\n    {{ 'genericErrorMsg' | translate }}\r\n  </div>\r\n\r\n  <div *ngIf=\"inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.pattern\"\r\n       class=\"error\">\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n      <path\r\n        d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n        fill=\"#B42318\"/>\r\n      <path\r\n        d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n        fill=\"#B42318\"/>\r\n      <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n            d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n            fill=\"#B42318\"/>\r\n    </svg>\r\n    {{ patternErrorMessage || 'genericErrorMsg' | translate }}\r\n  </div>\r\n\r\n  <ng-container *ngIf=\"customValidationsKeys\">\r\n    <div *ngFor=\"let key of customValidationsKeys\">\r\n      <div\r\n        *ngIf=\"inputFormControl.touched && inputFormControl.errors && !inputFormControl.errors.pattern && !inputFormControl.errors.required && inputFormControl.errors[key]\"\r\n        class=\"error\">\r\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n          <path\r\n            d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n            fill=\"#B42318\"/>\r\n          <path\r\n            d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n            fill=\"#B42318\"/>\r\n          <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n                d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n                fill=\"#B42318\"/>\r\n        </svg>\r\n        {{ inputFormControl.errors[key] | translate }}\r\n      </div>\r\n    </div>\r\n  </ng-container>\r\n\r\n  <div class=\"mat-hint mb-2\" *ngIf=\"hint\">\r\n    {{ hint|translate }}<span>&nbsp;</span>\r\n  </div>\r\n</ng-container>\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {TranslateModule} from \"@ngx-translate/core\";\r\nimport {FileUploadModule} from \"primeng/fileupload\";\r\nimport {CommonModule, NgFor, NgIf} from \"@angular/common\";\r\nimport {InputDisplay} from \"../enum/input-display\";\r\n\r\n@Component({\r\n  selector: 'g-file-upload',\r\n  templateUrl: './file-upload.component.html',\r\n  styleUrls: ['./file-upload.component.scss'],\r\n  standalone: true,\r\n\r\n  imports: [\r\n    TranslateModule,\r\n    FileUploadModule,\r\n    NgIf,\r\n    NgFor,\r\n    CommonModule\r\n  ]\r\n})\r\nexport class FileUploadComponent {\r\n\r\n  @Output() valueChange = new EventEmitter<any>();\r\n  @Input() label: string;\r\n  @Input() labelText: string;\r\n  uploadedFiles: any[] = [];\r\n  selectedCategories: any[] = [];\r\n\r\n  @Input() chooseLabel: string = 'Browse';\r\n  @Input() uploadLabel: string = 'Upload';\r\n  @Input() mode:any=\"advanced\"\r\n  @Input() required: boolean = false;\r\n  @Input() hint: string;\r\n  @Input() fontWeight: string | number = '500';\r\n  @Input() display: InputDisplay = InputDisplay.Flex;\r\n  myUploader(event: any){\r\n    console.log(this.uploadedFiles);\r\n    for(let file of event.files) {\r\n      this.uploadedFiles.push(file);\r\n    }\r\n    this.valueChange.emit(this.uploadedFiles);\r\n  }\r\n\r\n}\r\n\r\n\r\n\r\n","<label [style.font-weight]=\"fontWeight\">{{ label ? (label | translate) : labelText }}\r\n  <span *ngIf=\"required\"\r\n        [ngClass]=\"{'error1': required && uploadedFiles.length == 0, 'default-color': required && uploadedFiles.length > 0}\">\r\n    *\r\n  </span>\r\n</label>\r\n<p-fileUpload\r\n  name=\"myfile[]\" [customUpload]=\"true\"\r\n  (uploadHandler)=\"myUploader($event)\"\r\n  [mode]=\"mode\"\r\n  [chooseLabel]=\"chooseLabel\"\r\n  [uploadLabel]=\"uploadLabel\"\r\n>\r\n  <ng-template pTemplate=\"content\">\r\n    <ul *ngIf=\"uploadedFiles.length\">\r\n      <li *ngFor=\"let file of uploadedFiles\">{{ file.name }} - {{ file.size }} bytes</li>\r\n    </ul>\r\n  </ng-template>\r\n</p-fileUpload>\r\n<div *ngIf=\"required && uploadedFiles.length == 0\" class=\"error\">\r\n  <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n    <path\r\n      d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n      fill=\"#B42318\"/>\r\n    <path\r\n      d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n      fill=\"#B42318\"/>\r\n    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n          d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n          fill=\"#B42318\"/>\r\n  </svg>\r\n  {{ 'requiredErrorMessage' | translate }}\r\n</div>\r\n<div class=\"mat-hint mb-2\">\r\n  {{ hint }}<span>&nbsp;</span>\r\n</div>\r\n\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {TranslateModule} from \"@ngx-translate/core\";\r\nimport {RadioButtonModule} from \"primeng/radiobutton\";\r\nimport {FormsModule, ReactiveFormsModule, Validators} from \"@angular/forms\";\r\nimport {CommonModule, NgFor, NgIf} from \"@angular/common\";\r\nimport {InputDisplay} from \"../enum/input-display\";\r\n\r\n@Component({\r\n  selector: 'g-radio-button',\r\n  templateUrl: './radio-button.component.html',\r\n  styleUrls: ['./radio-button.component.scss'],\r\n  standalone: true,\r\n  imports: [\r\n    TranslateModule,\r\n    RadioButtonModule,\r\n    FormsModule,\r\n    NgFor,\r\n    NgIf,\r\n    CommonModule,\r\n    ReactiveFormsModule\r\n  ]\r\n})\r\nexport class RadioButtonComponent implements OnInit {\r\n  protected readonly Validators = Validators;\r\n  @Output() valueChange = new EventEmitter<any>();\r\n  @Input() label: string;\r\n  @Input() labelText: string;\r\n  @Input() patternErrorMessage: string;\r\n  @Input() radioItems: any[];\r\n  @Input() hint: string;\r\n  @Input() fontWeight: string | number = '400';\r\n  display: InputDisplay = InputDisplay.InlineFlex;\r\n  @Input() itemValue: string;\r\n  @Input() itemLabel: string;\r\n  @Input() inputFormControl: any;\r\n  @Input() customValidationsKeys: string[];\r\n  @Input()uniqRadioButtonId: string;\r\n\r\n  onClick(event: any) {\r\n    this.valueChange.emit(event.value);\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    if (!this.inputFormControl)\r\n      throw new Error('Yo must provide inputFormControl as input => Example :' +\r\n        '[inputFormControl]=\"yourFormGroup.get(yourFormControllerName)\"');\r\n    if (!this.itemLabel || !this.itemValue)\r\n      throw new Error('You must provide itemLabel and itemValue as inputs => Example :' +\r\n        'For radioItems like [{name: \"name\", key: \"1\"},....] You provide keys of Object as' +\r\n        ' [itemLabel]=\"name\" [itemValue]=\"key\"');\r\n  }\r\n}\r\n","<ng-container *ngIf=\"inputFormControl && itemLabel && itemValue\">\r\n\r\n  <label class=\"input-label\">{{ label ? (label | translate) : labelText }}\r\n    <span *ngIf=\"inputFormControl.hasValidator(Validators.required)\"\r\n          [ngClass]=\"{'error1': inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.required,\r\n          'default-color': !inputFormControl.errors}\">\r\n    *\r\n  </span>\r\n  </label>\r\n\r\n  <div class=\"grid formgrid\">\r\n    <div [style.display]=\"display\"\r\n         style=\"align-items: center; padding: 0 26px 14px 22px;\" *ngFor=\"let category of radioItems\"\r\n         class=\"field-checkbox\">\r\n      <p-radioButton [value]=\"category[itemValue]\"\r\n                     [id]=\"uniqRadioButtonId\"\r\n                     [name]=\"uniqRadioButtonId\"\r\n                     [label]=\"category[itemLabel]\"\r\n                     [formControl]=\"inputFormControl\"\r\n                     [inputId]=\"category[this.itemValue]+'r'\"\r\n                     (onClick)=\"onClick($event)\"\r\n                     class=\"formInput elm-radiobtn\"\r\n      >\r\n      </p-radioButton>\r\n    </div>\r\n\r\n  </div>\r\n\r\n\r\n  <div *ngIf=\"inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.required\"\r\n       class=\"error\">\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n      <path\r\n        d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n        fill=\"#B42318\"/>\r\n      <path\r\n        d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n        fill=\"#B42318\"/>\r\n      <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n            d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n            fill=\"#B42318\"/>\r\n    </svg>\r\n    {{ 'requiredErrorMessage' | translate }}\r\n  </div>\r\n\r\n  <div\r\n    *ngIf=\"inputFormControl.touched && inputFormControl.errors && !inputFormControl.errors.pattern && !inputFormControl.errors.required && !customValidationsKeys\"\r\n    class=\"error\">\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n      <path\r\n        d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n        fill=\"#B42318\"/>\r\n      <path\r\n        d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n        fill=\"#B42318\"/>\r\n      <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n            d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n            fill=\"#B42318\"/>\r\n    </svg>\r\n    {{ 'genericErrorMsg' | translate }}\r\n  </div>\r\n\r\n  <div *ngIf=\"inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.pattern\"\r\n       class=\"error\">\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n      <path\r\n        d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n        fill=\"#B42318\"/>\r\n      <path\r\n        d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n        fill=\"#B42318\"/>\r\n      <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n            d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n            fill=\"#B42318\"/>\r\n    </svg>\r\n    {{ patternErrorMessage || 'genericErrorMsg' | translate }}\r\n  </div>\r\n\r\n\r\n  <ng-container *ngIf=\"customValidationsKeys\">\r\n    <div *ngFor=\"let key of customValidationsKeys\">\r\n      <div\r\n        *ngIf=\"inputFormControl.touched && inputFormControl.errors && !inputFormControl.errors.pattern && !inputFormControl.errors.required && inputFormControl.errors[key]\"\r\n        class=\"error\">\r\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n          <path\r\n            d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n            fill=\"#B42318\"/>\r\n          <path\r\n            d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n            fill=\"#B42318\"/>\r\n          <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n                d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n                fill=\"#B42318\"/>\r\n        </svg>\r\n        {{ inputFormControl.errors[key] | translate }}\r\n      </div>\r\n    </div>\r\n  </ng-container>\r\n\r\n  <div class=\"mat-hint mb-2\" *ngIf=\"hint\">\r\n    {{ hint|translate }}<span>&nbsp;</span>\r\n  </div>\r\n</ng-container>\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {InputLanguageEnum} from \"../enum/input-language.enum\";\r\nimport {TranslateModule} from \"@ngx-translate/core\";\r\nimport {FormsModule, ReactiveFormsModule, Validators} from \"@angular/forms\";\r\nimport {CommonModule, NgIf} from \"@angular/common\";\r\nimport {InputTextareaModule} from \"primeng/inputtextarea\";\r\nimport {InputDisplay} from \"../enum/input-display\";\r\n\r\n@Component({\r\n  selector: 'g-text-area',\r\n  templateUrl: './g-text-area.component.html',\r\n  styleUrls: ['./g-text-area.component.scss'],\r\n  standalone: true,\r\n  imports: [\r\n    TranslateModule,\r\n    FormsModule,\r\n    NgIf,\r\n    InputTextareaModule,\r\n    CommonModule,\r\n    ReactiveFormsModule\r\n  ]\r\n})\r\nexport class GTextAreaComponent implements OnInit {\r\n  protected readonly InputLanguageEnum = InputLanguageEnum;\r\n  protected readonly Validators = Validators;\r\n  @Input() label: string;\r\n  @Input() labelText: string;\r\n  @Output() valueChange = new EventEmitter<any>();\r\n  @Input() placeholder: string = '';\r\n  @Input() patternErrorMessage: string;\r\n  @Input() hint: string;\r\n  @Input() fontWeight: string | number = '500';\r\n  display: InputDisplay = InputDisplay.InlineFlex;\r\n  @Input() inputFormControl: any;\r\n  @Input() customValidationsKeys: string[];\r\n  @Input() rows: number = 5;\r\n  @Input() cols: number = 5;\r\n  @Input() maxCharacters: number = 200;\r\n  characterCount: number = 0;\r\n  @Input() uniqueInputId: string;\r\n\r\n  onChangeValue(event: any) {\r\n    this.valueChange.emit(event.target.value);\r\n  }\r\n\r\n  onInputChange(newValue: any) {\r\n    this.updateCharacterCount();\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    if (!this.inputFormControl) {\r\n      throw new Error('Yo must provide inputFormControl as input => Example :' +\r\n        '[inputFormControl]=\"yourFormGroup.get(yourFormControllerName)\"');\r\n    }\r\n    this.updateCharacterCount();\r\n    // Subscribe to value changes to update the character count\r\n    this.inputFormControl.valueChanges.subscribe(() => {\r\n      console.log(\"Text Area Form Control Value Changed ,Value :\" + this.inputFormControl.value)\r\n      this.updateCharacterCount();\r\n    });\r\n  }\r\n\r\n  private updateCharacterCount(): void {\r\n    this.characterCount = this.inputFormControl && this.inputFormControl.value ? this.inputFormControl.value.length : 0;\r\n  }\r\n}\r\n","<ng-container *ngIf=\"inputFormControl\">\r\n  <label [attr.for]=\"uniqueInputId\" class=\"input-label\">{{ label ? (label | translate) : labelText }}\r\n    <span *ngIf=\"inputFormControl.hasValidator(Validators.required)\"\r\n          [ngClass]=\"{\r\n          'error2': inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.required,\r\n          'default-color': !inputFormControl.errors\r\n          }\">\r\n    *\r\n  </span>\r\n  </label>\r\n  <div>\r\n    <div class=\"input-text-area-wrapper-class\">\r\n   <textarea\r\n     [formControl]=\"inputFormControl\"\r\n     [rows]=\"rows\"\r\n     [cols]=\"cols\"\r\n     [maxlength]=\"maxCharacters\"\r\n     (input)=\"onInputChange($event)\"\r\n     (blur)=\"onChangeValue($event)\"\r\n     class=\"inputText formInput\"\r\n     pInputTextarea\r\n     [placeholder]=\"placeholder|translate\"\r\n     [ngClass]=\"{'error1': inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.required}\"\r\n     [attr.id]=\"uniqueInputId\"\r\n   ></textarea>\r\n    </div>\r\n    <div class=\"input-hint mb-2\">\r\n      {{ characterCount + '/' + maxCharacters }}\r\n    </div>\r\n  </div>\r\n  <div>\r\n    <div *ngIf=\"inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.required\"\r\n         class=\"error\">\r\n      <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n        <path\r\n          d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n          fill=\"#B42318\"/>\r\n        <path\r\n          d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n          fill=\"#B42318\"/>\r\n        <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n              d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n              fill=\"#B42318\"/>\r\n      </svg>\r\n      {{ 'requiredErrorMessage' | translate }}\r\n    </div>\r\n\r\n    <div *ngIf=\"inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.pattern\"\r\n         class=\"error\">\r\n      <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n        <path\r\n          d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n          fill=\"#B42318\"/>\r\n        <path\r\n          d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n          fill=\"#B42318\"/>\r\n        <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n              d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n              fill=\"#B42318\"/>\r\n      </svg>\r\n      {{ patternErrorMessage || 'genericErrorMsg' | translate }}\r\n    </div>\r\n\r\n    <div *ngIf=\"inputFormControl.touched && inputFormControl.errors && inputFormControl.errors['minlength']\"\r\n         class=\"error\">\r\n      <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n        <path\r\n          d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n          fill=\"#B42318\"/>\r\n        <path\r\n          d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n          fill=\"#B42318\"/>\r\n        <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n              d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n              fill=\"#B42318\"/>\r\n      </svg>\r\n      {{ 'minLength' | translate }} {{ inputFormControl.errors['minlength'].requiredLength }}  {{ 'characters' | translate }}\r\n    </div>\r\n\r\n    <div\r\n      *ngIf=\"inputFormControl.touched && inputFormControl.errors && !inputFormControl.errors['minlength'] && !inputFormControl.errors.pattern && !inputFormControl.errors.required && !customValidationsKeys\"\r\n      class=\"error\">\r\n      <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n        <path\r\n          d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n          fill=\"#B42318\"/>\r\n        <path\r\n          d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n          fill=\"#B42318\"/>\r\n        <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n              d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n              fill=\"#B42318\"/>\r\n      </svg>\r\n      {{ 'genericErrorMsg' | translate }}\r\n    </div>\r\n\r\n    <ng-container *ngIf=\"customValidationsKeys\">\r\n      <div *ngFor=\"let key of customValidationsKeys\">\r\n        <div\r\n          *ngIf=\"inputFormControl.touched && inputFormControl.errors && !inputFormControl.errors.pattern && !inputFormControl.errors.required && inputFormControl.errors[key]\"\r\n          class=\"error\">\r\n          <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n            <path\r\n              d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n              fill=\"#B42318\"/>\r\n            <path\r\n              d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n              fill=\"#B42318\"/>\r\n            <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n                  d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n                  fill=\"#B42318\"/>\r\n          </svg>\r\n          {{ inputFormControl.errors[key] | translate }}\r\n        </div>\r\n      </div>\r\n    </ng-container>\r\n\r\n    <div class=\"input-hint mb-2\" *ngIf=\"hint\">\r\n      {{ hint |translate }}<span>&nbsp;</span>\r\n    </div>\r\n  </div>\r\n</ng-container>\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {TranslateModule} from \"@ngx-translate/core\";\r\nimport {DropdownModule} from \"primeng/dropdown\";\r\nimport {FormsModule, ReactiveFormsModule, Validators} from \"@angular/forms\";\r\nimport {CommonModule, NgIf} from \"@angular/common\";\r\nimport {InputDisplay} from \"../enum/input-display\";\r\nimport {MultiSelectModule} from \"primeng/multiselect\";\r\n\r\n@Component({\r\n  selector: 'g-multiselect',\r\n  templateUrl: './multiselect.component.html',\r\n  styleUrls: ['./multiselect.component.scss'],\r\n  imports: [\r\n    TranslateModule,\r\n    DropdownModule,\r\n    FormsModule,\r\n    NgIf,\r\n    CommonModule,\r\n    ReactiveFormsModule,\r\n    MultiSelectModule\r\n  ],\r\n  standalone: true\r\n})\r\nexport class MultiselectComponent implements OnInit {\r\n  protected readonly Validators = Validators;\r\n  @Output() valueChange = new EventEmitter<any>();\r\n  @Input() label: string;\r\n  @Input() labelText: string;\r\n  @Input() options: any[];\r\n  @Input() placeholder: string;\r\n  @Input() optionLabel: string;\r\n  @Input() optionValue: string;\r\n  @Input() optionDisabledField: string = 'isDisabledOption';\r\n  @Input() hint: string;\r\n  @Input() labelFontWeight: string | number = '500';\r\n  display: InputDisplay = InputDisplay.Flex;\r\n  @Input() inputFormControl: any;\r\n  @Input() customValidationsKeys: string[];\r\n  @Input() patternErrorMessage: string;\r\n  @Input() displaySelectedItemsLabelType: string | 'comma' | 'chip' = 'chip';\r\n  @Input() maxSelectedShownLabels: number = Infinity;\r\n  @Input() appendToElement: string = '';\r\n\r\n  changeValue(event: any) {\r\n    this.valueChange.emit(event.value);\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    if (!this.inputFormControl)\r\n      throw new Error('Yo must provide inputFormControl as input => Example :' +\r\n        '[inputFormControl]=\"yourFormGroup.get(yourFormControllerName)\"');\r\n  }\r\n}\r\n","<ng-container *ngIf=\"inputFormControl\">\r\n  <label style=\"display: block\">{{ label ? (label | translate) : labelText }}\r\n    <span *ngIf=\"inputFormControl.hasValidator(Validators.required)\"\r\n          [ngClass]=\"{\r\n          'error1': inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.required,\r\n          'default-color':  !inputFormControl.errors\r\n          }\">\r\n    *\r\n  </span>\r\n\r\n  </label>\r\n\r\n  <p-multiSelect\r\n    [appendTo]=\"appendToElement\"\r\n    [formControl]=\"inputFormControl\"\r\n    [options]=\"options\"\r\n    [placeholder]=\"placeholder|translate\"\r\n    [optionLabel]=\"optionLabel\"\r\n    [optionValue]=\"optionValue\"\r\n    [filter]=\"true\"\r\n    [filterBy]=\"optionLabel\"\r\n    [showClear]=\"true\"\r\n    [display]=\"displaySelectedItemsLabelType\"\r\n    [maxSelectedLabels]=\"maxSelectedShownLabels\"\r\n    [optionDisabled]=\"optionDisabledField\"\r\n    (onChange)=\"changeValue($event)\"\r\n    class=\"formInput\"\r\n  ></p-multiSelect>\r\n  <div *ngIf=\" inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.required\"\r\n       class=\"error\">\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n      <path\r\n        d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n        fill=\"#B42318\"/>\r\n      <path\r\n        d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n        fill=\"#B42318\"/>\r\n      <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n            d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n            fill=\"#B42318\"/>\r\n    </svg>\r\n    {{ 'requiredErrorMessage' | translate }}\r\n  </div>\r\n\r\n  <div\r\n    *ngIf=\"inputFormControl.touched && inputFormControl.errors && !inputFormControl.errors.pattern && !inputFormControl.errors.required && !customValidationsKeys\"\r\n    class=\"error\">\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n      <path\r\n        d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n        fill=\"#B42318\"/>\r\n      <path\r\n        d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n        fill=\"#B42318\"/>\r\n      <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n            d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n            fill=\"#B42318\"/>\r\n    </svg>\r\n    {{ 'genericErrorMsg' | translate }}\r\n  </div>\r\n\r\n  <div *ngIf=\"inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.pattern\"\r\n       class=\"error\">\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n      <path\r\n        d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n        fill=\"#B42318\"/>\r\n      <path\r\n        d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n        fill=\"#B42318\"/>\r\n      <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n            d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n            fill=\"#B42318\"/>\r\n    </svg>\r\n    {{ patternErrorMessage || 'genericErrorMsg' | translate }}\r\n  </div>\r\n\r\n  <ng-container *ngIf=\"customValidationsKeys\">\r\n    <div *ngFor=\"let key of customValidationsKeys\">\r\n      <div\r\n        *ngIf=\"inputFormControl.touched && inputFormControl.errors && !inputFormControl.errors.pattern && !inputFormControl.errors.required && inputFormControl.errors[key]\"\r\n        class=\"error\">\r\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n          <path\r\n            d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n            fill=\"#B42318\"/>\r\n          <path\r\n            d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n            fill=\"#B42318\"/>\r\n          <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n                d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n                fill=\"#B42318\"/>\r\n        </svg>\r\n        {{ inputFormControl.errors[key] | translate }}\r\n      </div>\r\n    </div>\r\n  </ng-container>\r\n\r\n  <div class=\"mat-hint mb-2\" *ngIf=\"hint\">\r\n    {{ hint|translate }}<span>&nbsp;</span>\r\n  </div>\r\n</ng-container>\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { MenuItem } from 'primeng/api';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class BreadCrumbService {\r\n  static readonly ROUTE_DATA_BREADCRUMB = 'breadcrumb';\r\n\r\n   breadcrumbsSubject = new BehaviorSubject<MenuItem[]>([]);\r\n\r\n  constructor(private router: Router, private activatedRoute: ActivatedRoute) {\r\n    this.router.events\r\n      .pipe(filter((event) => event instanceof NavigationEnd))\r\n      .subscribe(() => this.updateBreadcrumbs(this.activatedRoute.root));\r\n  }\r\n\r\n  private updateBreadcrumbs(route: ActivatedRoute, breadcrumbs: MenuItem[] = []): void {\r\n    breadcrumbs.length = 0;\r\n\r\n    this.createBreadcrumbs(route, breadcrumbs);\r\n\r\n    // Push the updated breadcrumbs to the subject\r\n    this.breadcrumbsSubject.next([...breadcrumbs]);\r\n  }\r\n\r\n  private createBreadcrumbs(route: ActivatedRoute, breadcrumbs: MenuItem[]): void {\r\n    const routeURL: string = route.snapshot.url.map((segment) => segment.path).join('/');\r\n\r\n    if (routeURL !== '') {\r\n      breadcrumbs.push({ label: routeURL, routerLink: routeURL });\r\n    }\r\n\r\n    const label = route.snapshot.data[BreadCrumbService.ROUTE_DATA_BREADCRUMB];\r\n    if (label) {\r\n      breadcrumbs.push({ label, routerLink: routeURL });\r\n    }\r\n\r\n    const children: ActivatedRoute[] = route.children;\r\n    for (const child of children) {\r\n      this.createBreadcrumbs(child, breadcrumbs);\r\n    }\r\n  }\r\n}\r\n","import {Component, OnInit} from '@angular/core';\r\nimport {MenuItem} from \"primeng/api\";\r\nimport {BreadCrumbService} from \"./service/bread-crumb.service\";\r\nimport {BreadcrumbModule} from \"primeng/breadcrumb\";\r\n\r\n\r\n@Component({\r\n  selector: 'g-p-bread-crumb',\r\n  templateUrl: './bread-crumb.component.html',\r\n  styleUrls: ['./bread-crumb.component.scss'],\r\n  standalone:true,\r\n  imports:[BreadcrumbModule],\r\n  providers: [BreadCrumbService]\r\n\r\n})\r\nexport class BreadCrumbComponent implements OnInit{\r\n\r\n  breadcrumbs: MenuItem[] = [];\r\n  home = { icon: 'pi pi-home', routerLink: '/' };\r\n  constructor(private breadcrumbService: BreadCrumbService) {}\r\n\r\n  ngOnInit() {\r\n    this.breadcrumbService.breadcrumbsSubject.subscribe((breadcrumbs) => {\r\n      this.breadcrumbs = breadcrumbs;\r\n    });\r\n  }\r\n\r\n}\r\n\r\n","\r\n<p-breadcrumb class=\"max-w-full\"  [model]=\"breadcrumbs\" [home]=\"home\" ></p-breadcrumb>\r\n\r\n","export class BreadCrumbModel {\r\n  label: string;\r\n  url: string;\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport {BehaviorSubject} from \"rxjs\";\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class SpinnerService {\r\n  loadingSub: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n  /**\r\n   * Contains in-progress loading requests\r\n   */\r\n  loadingMap: Map<string, boolean> = new Map<string, boolean>();\r\n\r\n  constructor() { }\r\n\r\n  /**\r\n   * Sets the loadingSub property value based on the following:\r\n   * - If loading is true, add the provided url to the loadingMap with a true value, set loadingSub value to true\r\n   * - If loading is false, remove the loadingMap entry and only when the map is empty will we set loadingSub to false\r\n   * This pattern ensures if there are multiple requests awaiting completion, we don't set loading to false before\r\n   * other requests have completed. At the moment, this function is only called from the @link{HttpRequestInterceptor}\r\n   * @param loading {boolean}\r\n   * @param url {string}\r\n   */\r\n  setLoading(loading: boolean, url: string): void {\r\n    if (!url) {\r\n      throw new Error('The request URL must be provided to the LoadingService.setLoading function');\r\n    }\r\n    if (loading) {\r\n      this.loadingMap.set(url, loading);\r\n      this.loadingSub.next(true);\r\n    }else if (!loading && this.loadingMap.has(url)) {\r\n      this.loadingMap.delete(url);\r\n    }\r\n    if (this.loadingMap.size === 0) {\r\n      this.loadingSub.next(false);\r\n    }\r\n\r\n  }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport {SpinnerService} from \"../spinner.service\";\r\n\r\n@Component({\r\n  selector: 'g-spinner',\r\n  templateUrl: './spinner.component.html',\r\n  styleUrls: ['./spinner.component.scss'],\r\n  standalone:true,\r\n  providers: [SpinnerService],\r\n  imports:[]\r\n})\r\nexport class SpinnerComponent implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<div class=\"loading-overlay\">\r\n<!--  <svg version=\"1.1\" x=\"0px\" y=\"0px\" class=\"loading\" viewBox=\"0 0 1000 1000\"-->\r\n<!--       style=\"enable-background:new 0 0 1000 1000;\" xml:space=\"preserve\">-->\r\n<!--            <rect width=\"220\" height=\"100\" style=\"fill: #b49164;transform: translate(0px, 40px);display: n;\" x=\"390\"-->\r\n<!--                  y=\"390\"></rect>-->\r\n<!--    <path fill=\"#23282D\" style=\"transform: translate(390px, 390px);\" width=\"220\" height=\"220\" d=\"M211.6,42.4l-90-30c-7.5-2.5-15.7-2.5-23.2,0l-90,30C3.4,44.1,0,48.7,0,54v18.7l101.2-30.4-->\r\n<!--            c5.7-1.7,11.8-1.7,17.6,0L220,72.7V54C220,48.7,216.6,44.1,211.6,42.4z M104.7,54L0,85.5v87.2c0,5.7,4,10.7,9.6,11.9l92.5,20.5-->\r\n<!--            c5.2,1.2,10.7,1.2,15.9,0l92.5-20.5c5.6-1.2,9.6-6.2,9.6-11.9V85.5L115.3,54C111.8,53,108.2,53,104.7,54z M48.9,98.4-->\r\n<!--            c0,1.4-0.9,2.6-2.2,2.9l-30.6,8.3c-1.9,0.5-3.9-0.9-3.9-2.9v-6.3c0-1.4,0.9-2.6,2.2-2.9L45,89.1c1.9-0.5,3.9,0.9,3.9,2.9V98.4z-->\r\n<!--             M103.9,83.4c0,1.4-0.9,2.6-2.2,2.9L65,96.3c-1.9,0.5-3.9-0.9-3.9-2.9V87c0-1.4,0.9-2.6,2.2-2.9l36.7-10c1.9-0.5,3.9,0.9,3.9,2.9-->\r\n<!--            C103.9,77,103.9,83.4,103.9,83.4z M171.1,92c0-2,1.9-3.5,3.9-2.9l30.6,8.3c1.3,0.4,2.2,1.6,2.2,2.9v6.3c0,2-1.9,3.5-3.9,2.9-->\r\n<!--            l-30.6-8.3c-1.3-0.4-2.3-1.6-2.2-2.9C171.1,98.4,171.1,92,171.1,92z M116.1,77c0-2,1.9-3.5,3.9-2.9l36.7,10-->\r\n<!--            c1.3,0.4,2.2,1.6,2.2,2.9v6.3c0,2-1.9,3.5-3.9,2.9l-36.7-10c-1.3-0.4-2.3-1.6-2.2-2.9V77z\"></path>-->\r\n<!--    <circle class=\"st st&#45;&#45;medium\" cx=\"500\" cy=\"500\" r=\"240\"></circle>-->\r\n<!--    <circle class=\"st\" cx=\"500\" cy=\"500\" r=\"320\"></circle>-->\r\n<!--    <circle class=\"st st&#45;&#45;three\" cx=\"500\" cy=\"500\" r=\"320\"></circle>-->\r\n<!--    <circle class=\"st\" cx=\"500\" cy=\"500\" r=\"400\"></circle>-->\r\n<!--    <circle class=\"st st&#45;&#45;large\" cx=\"500\" cy=\"500\" r=\"400\"></circle>-->\r\n<!--        </svg>-->\r\n  <img  src=\"assets/layout/images/ajaxloadingbar.gif\" alt=\"\" fill>\r\n</div>\r\n","import {StatusStep} from \"./StatusStep\";\r\nimport {Status} from \"../enum/status.enum\";\r\n\r\nexport class StatusModal {\r\n  stepsValue: StatusStep[] = [];\r\n}\r\n","export class StatusStep{\r\n  stepName: string;\r\n  isCurrentState: boolean;\r\n  stepOrder: number;\r\n  stepValue: string;\r\n  stepState: number;\r\n}\r\n","import {Component, Input, OnInit} from '@angular/core';\r\nimport {StatusStep} from \"../../model/StatusStep\";\r\nimport {NgIf} from \"@angular/common\";\r\n\r\n@Component({\r\n  selector: 'app-approved-status',\r\n  templateUrl: './approved-status.component.html',\r\n  styleUrls: ['./approved-status.component.scss'],\r\n  imports: [\r\n    NgIf\r\n  ],\r\n  standalone: true\r\n})\r\nexport class ApprovedStatusComponent implements OnInit{\r\n\r\n  @Input() stepValue: StatusStep;\r\n  @Input() statesSize: number;\r\n\r\n  ngOnInit() {\r\n  }\r\n\r\n\r\n}\r\n","<div class=\"item\">\r\n  <img class=\"mx-2\" src=\"assets/layout/images/Ellipse-green.png\" alt=\"stepper\">\r\n  <span class=\"caption\">{{stepValue.stepName}}</span>\r\n</div>\r\n<div *ngIf=\"stepValue.stepOrder < statesSize\" class=\"line green\">\r\n</div>\r\n","import {Component, Input} from '@angular/core';\r\nimport {StatusStep} from \"../../model/StatusStep\";\r\nimport {NgIf} from \"@angular/common\";\r\n\r\n@Component({\r\n  selector: 'app-waiting-status',\r\n  templateUrl: './waiting-status.component.html',\r\n  styleUrls: ['./waiting-status.component.scss'],\r\n  imports: [\r\n    NgIf\r\n  ],\r\n  standalone: true\r\n})\r\nexport class WaitingStatusComponent {\r\n  @Input() stepValue: StatusStep;\r\n  @Input() statesSize: number;\r\n}\r\n","<div class=\"item\">\r\n  <img class=\"mx-2\" src=\"assets/layout/images/Group%201.png\" alt=\"stepper\">\r\n  <span class=\"caption\">{{stepValue.stepName}}</span>\r\n</div>\r\n<div *ngIf=\"stepValue.stepOrder < statesSize\" class=\"line black\">\r\n</div>\r\n","import {Component, Input} from '@angular/core';\r\nimport {StatusStep} from \"../../model/StatusStep\";\r\nimport {NgIf} from \"@angular/common\";\r\n\r\n@Component({\r\n  selector: 'app-canceled-status',\r\n  templateUrl: './canceled-status.component.html',\r\n  styleUrls: ['./canceled-status.component.scss'],\r\n  imports: [\r\n    NgIf\r\n  ],\r\n  standalone: true\r\n})\r\nexport class CanceledStatusComponent {\r\n  @Input() stepValue: StatusStep;\r\n  @Input() statesSize: number;\r\n}\r\n","<div class=\"item\">\r\n  <img class=\"mx-2\" src=\"assets/layout/images/Ellipse-red.png\" alt=\"stepper\">\r\n  <span class=\"caption\">{{stepValue.stepName}}</span>\r\n</div>\r\n<div *ngIf=\"stepValue.stepOrder < statesSize\" class=\"line red\">\r\n</div>\r\n","import {Component, Input} from '@angular/core';\r\nimport {StatusStep} from \"../../model/StatusStep\";\r\nimport {NgIf} from \"@angular/common\";\r\n\r\n@Component({\r\n  selector: 'app-unknown-status',\r\n  templateUrl: './unknown-status.component.html',\r\n  styleUrls: ['./unknown-status.component.scss'],\r\n  imports: [\r\n    NgIf\r\n  ],\r\n  standalone: true\r\n})\r\nexport class UnknownStatusComponent {\r\n  @Input() step: StatusStep;\r\n  @Input() statesSize: number;\r\n\r\n}\r\n","<div class=\"item\">\r\n  <img class=\"mx-2\" src=\"assets/layout/images/Group2.png\" alt=\"stepper\">\r\n  <span class=\"caption\">{{step.stepName}}</span>\r\n</div>\r\n<div *ngIf=\"step.stepOrder < statesSize\" class=\"line none\">\r\n</div>\r\n","import {Component, Input} from '@angular/core';\r\nimport {StatusStep} from \"../../model/StatusStep\";\r\nimport {NgIf} from \"@angular/common\";\r\n\r\n@Component({\r\n  selector: 'app-uncomplete-status',\r\n  templateUrl: './uncomplete-status.component.html',\r\n  styleUrls: ['./uncomplete-status.component.scss'],\r\n  imports: [\r\n    NgIf\r\n  ],\r\n  standalone: true\r\n})\r\nexport class UncompleteStatusComponent {\r\n  @Input() stepValue: StatusStep;\r\n  @Input() statesSize: number;\r\n}\r\n","<div class=\"item\">\r\n  <img class=\"mx-2\" src=\"assets/layout/images/cancel-ellipse.png\" alt=\"stepper\">\r\n  <span class=\"caption\">{{stepValue.stepName}}</span>\r\n</div>\r\n<div *ngIf=\"stepValue.stepOrder < statesSize\" class=\"line black\">\r\n</div>\r\n","import {Component, Input} from '@angular/core';\r\nimport {StatusStep} from \"../../model/StatusStep\";\r\nimport {NgIf} from \"@angular/common\";\r\n\r\n@Component({\r\n  selector: 'app-default-status',\r\n  templateUrl: './default-status.component.html',\r\n  styleUrls: ['./default-status.component.scss'],\r\n  standalone: true,\r\n  imports: [\r\n    NgIf\r\n  ]\r\n\r\n})\r\nexport class DefaultStatusComponent {\r\n  @Input() step: StatusStep;\r\n  @Input() statesSize: number;\r\n}\r\n","\r\n<div class=\"item\">\r\n  <img class=\"mx-2\" src=\"assets/layout/images/default.png\" alt=\"stepper\">\r\n  <span class=\"caption\">{{step.stepName}}</span>\r\n</div>\r\n<div *ngIf=\"step.stepOrder < statesSize\" class=\"line none\">\r\n</div>\r\n","export class StepRecordDetails {\r\n\r\n  stepValue: string;\r\n  status: number;\r\n\r\n}\r\n","import {StepRecordDetails} from \"./step-record-details\";\r\n\r\nexport class DefaultStepsInfo {\r\n\r\n  constructor(public disableDefaultSteps: boolean, public details?: StepRecordDetails) {}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {HttpClient} from \"@angular/common/http\";\r\nimport {BehaviorSubject} from \"rxjs\";\r\nimport {HttpCommonService} from \"../../service/http-common.service\";\r\nimport {StepRecordDetails} from \"../model/step-record-details\";\r\nimport {DefaultStepsInfo} from \"../model/default-steps-info\";\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class StepperServiceService {\r\n\r\n  private defaultStepsSubject = new BehaviorSubject<DefaultStepsInfo>(new DefaultStepsInfo(true));\r\n  defaultSteps$ = this.defaultStepsSubject.asObservable();\r\n  constructor(private commonService: HttpCommonService, private http: HttpClient) { }\r\n\r\n  buildStepper(url: string){\r\n    return this.commonService.getObservable<any>(url, true);\r\n  }\r\n\r\n\r\n  rebuildStepper(waitingProcess: any, status: any) {\r\n    let statusRecordDetails: StepRecordDetails = new StepRecordDetails();\r\n    statusRecordDetails.stepValue = waitingProcess;\r\n    statusRecordDetails.status = status;\r\n    this.defaultStepsSubject.next(new DefaultStepsInfo(false, statusRecordDetails));\r\n  }\r\n  enableDefaultSteps(){\r\n    this.defaultStepsSubject.next(new DefaultStepsInfo(true));\r\n  }\r\n}\r\n","import {Component, Input, OnInit} from '@angular/core';\r\nimport {StatusModal} from \"./model/status-modal\";\r\nimport {StatusStep} from \"./model/StatusStep\";\r\nimport {NgForOf, NgIf} from \"@angular/common\";\r\nimport {ApprovedStatusComponent} from \"./StepsStatusComponents/approved-status/approved-status.component\";\r\nimport {WaitingStatusComponent} from \"./StepsStatusComponents/waiting-status/waiting-status.component\";\r\nimport {CanceledStatusComponent} from \"./StepsStatusComponents/canceled-status/canceled-status.component\";\r\nimport {UnknownStatusComponent} from \"./StepsStatusComponents/unknown-status/unknown-status.component\";\r\nimport {UncompleteStatusComponent} from \"./StepsStatusComponents/uncomplete-status/uncomplete-status.component\";\r\nimport {StepperServiceService} from \"./service/stepperService.service\";\r\nimport {StepRecordDetails} from \"./model/step-record-details\";\r\nimport {DefaultStatusComponent} from \"./StepsStatusComponents/default-status/default-status.component\";\r\n\r\n@Component({\r\n  selector: 'pms-stepper',\r\n  templateUrl: './stepper.component.html',\r\n  styleUrls: ['./stepper.component.scss'],\r\n  standalone: true,\r\n  imports: [\r\n    NgForOf,\r\n    NgIf,\r\n    ApprovedStatusComponent,\r\n    WaitingStatusComponent,\r\n    CanceledStatusComponent,\r\n    UnknownStatusComponent,\r\n    UncompleteStatusComponent,\r\n    DefaultStatusComponent\r\n  ]\r\n})\r\nexport class StepperComponent implements OnInit {\r\n\r\n  stepperSteps: any;\r\n  statesSize: number;\r\n  statesObject: StatusModal = new StatusModal();\r\n  defaultSteps: boolean = true;\r\n  stepRecordDetails: StepRecordDetails;\r\n  @Input() stepperCacheKey: string;\r\n  @Input() defaultStepsUrl: string;\r\n  @Input() key: string;\r\n  constructor(private stepperService : StepperServiceService, private stepper: StepperServiceService) {\r\n    this.stepperService.enableDefaultSteps();\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.stepperService.defaultSteps$.subscribe((value) => {\r\n      this.defaultSteps = value.disableDefaultSteps;\r\n      if(value.details){\r\n        this.stepRecordDetails = value.details;\r\n      }\r\n      if(!this.defaultSteps){\r\n        this.completeStepper();\r\n      }\r\n    });\r\n    this.getStepperStates();\r\n  }\r\n  getStepperStates(){\r\n    this.stepperSteps = JSON.parse(sessionStorage.getItem('stepperSteps_' + this.stepperCacheKey)!);\r\n    if(!this.stepperSteps) {\r\n      let url = this.defaultStepsUrl;\r\n      this.stepperService.buildStepper(url).subscribe((res:any) => {\r\n        this.stepperSteps = res.response.data;\r\n        sessionStorage.setItem('stepperSteps_' + this.stepperCacheKey, JSON.stringify(this.stepperSteps));\r\n        this.buildStepper(this.stepperSteps);\r\n      })\r\n    }\r\n    else {\r\n      this.buildStepper(this.stepperSteps);\r\n    }\r\n\r\n\r\n  }\r\n  buildStepper(currentStates: any){\r\n    this.stepperSteps.forEach((value: any) => {\r\n      let statusStep: StatusStep = new StatusStep();\r\n      statusStep.stepName = value.stepName;\r\n      statusStep.stepOrder = value.stepOrder;\r\n      this.statesObject.stepsValue.push(statusStep);\r\n      statusStep.stepValue = value.stepValue;\r\n    });\r\n    this.statesSize = this.statesObject.stepsValue.length;\r\n\r\n  }\r\n  completeStepper(){\r\n    this.statesObject.stepsValue = [];\r\n    this.stepperSteps.forEach((value: any) => {\r\n      let statusStep: StatusStep = new StatusStep();\r\n      statusStep.stepName = value.stepName;\r\n      statusStep.stepOrder = value.stepOrder;\r\n      if(value.stepValue == this.stepRecordDetails.stepValue){\r\n        statusStep.isCurrentState = true;\r\n        statusStep.stepState = this.stepRecordDetails.status;\r\n      }\r\n      this.statesObject.stepsValue.push(statusStep);\r\n    });\r\n    this.statesSize = this.statesObject.stepsValue.length;\r\n  }\r\n\r\n}\r\n","\r\n    <div class=\"d-flex justify-content-center \">\r\n      <div *ngFor=\"let item of statesObject.stepsValue; index as i\">\r\n        <div *ngIf=\"item.isCurrentState && !defaultSteps\">\r\n          <div class=\"item\" *ngFor=\"let previousItem of statesObject.stepsValue.slice(0, i)\">\r\n            <app-approved-status  [stepValue]=\"previousItem\" [statesSize]=\"statesSize\"></app-approved-status>\r\n          </div>\r\n          <div class=\"item\">\r\n\r\n          <app-approved-status *ngIf=\"item.stepState > 0\" [stepValue]=\"item\" [statesSize]=\"statesSize\"></app-approved-status>\r\n\r\n          <app-waiting-status *ngIf=\"item.stepState == 0\" [stepValue]=\"item\" [statesSize]=\"statesSize\"></app-waiting-status>\r\n\r\n          <app-canceled-status *ngIf=\"item.stepState < 0\" [stepValue]=\"item\" [statesSize]=\"statesSize\"></app-canceled-status>\r\n          </div>\r\n          <div class=\"item\" *ngFor=\"let nextItem of statesObject.stepsValue.slice(i + 1)\">\r\n            <app-unknown-status *ngIf=\"item.stepState == 0 || item.stepState  > 0\" [step]=\"nextItem\" [statesSize]=\"statesSize\"></app-unknown-status>\r\n            <app-uncomplete-status *ngIf=\"item.stepState < 0\" [stepValue]=\"nextItem\" [statesSize]=\"statesSize\"></app-uncomplete-status>\r\n          </div>\r\n            </div>\r\n        <div *ngIf=\"defaultSteps\" class=\"item\">\r\n          <app-default-status [step]=\"item\" [statesSize]=\"statesSize\"></app-default-status>\r\n        </div>\r\n</div>\r\n    </div>\r\n","export enum Status{\r\n  APPROVED,\r\n  REJECTED,\r\n  WAITING,\r\n  CANCELED\r\n}\r\n","export enum WaitingProcess{\r\n  APPROVED,\r\n  WAITING,\r\n  CANCELED\r\n}\r\n","/**\r\n * Author: Ahmed Eldeeb\r\n * */\r\n\r\nimport {AbstractControl, ValidationErrors, Validators} from '@angular/forms';\r\nimport {isValidDate} from \"rxjs/internal/util/isDate\";\r\n\r\nexport class FormControlValidation {\r\n\r\n  static dateValidationError: ValidationErrors = {\r\n    invalidDate: true\r\n  };\r\n\r\n  static KsaPhoneValidator(control: AbstractControl): { [key: string]: string } | null {\r\n    const mobNumberPattern = \"^((\\\\+91-?)|0)?[0-9]{9}$\";\r\n    if (control.value && (!control.value.match(mobNumberPattern) || !control.value.startsWith(\"5\"))) {\r\n      return {'KsaPhoneValidator': 'KsaPhoneValidatorMsg'};\r\n    }\r\n    return null;\r\n  }\r\n\r\n  static AgeValidator(control: AbstractControl): { [key: string]: string } | null {\r\n    if (control.value && parseInt(control.value) > 110) {\r\n      return {'AgeValidator': 'AgeValidatorMsg'};\r\n    }\r\n    return null;\r\n  }\r\n\r\n\r\n  static WithOutSpaceValidator(control: AbstractControl): { [key: string]: string } | null {\r\n    if (control.value && (control.value.indexOf(\" \") !== -1)) {\r\n      return {'WithOutSpaceValidator': 'WithOutSpaceValidatorMsg'};\r\n    }\r\n\r\n    return null;\r\n  }\r\n\r\n  static StartWithSpaceValidator(control: AbstractControl): { [key: string]: string } | null {\r\n    if (control.value && (control.value.indexOf(' ') == 0)) {\r\n      return {'StartWithSpaceValidator': 'StartWithSpaceValidatorMsg'};\r\n    }\r\n    return null;\r\n  }\r\n\r\n\r\n  // Number only validation\r\n  static NumericValidator(control: AbstractControl) {\r\n    let val = control.value;\r\n    if (val === null || val === '') return null;\r\n    if (!val.toString().match(/^[0-9]+(\\.?[0-9]+)?$/))\r\n      return {'NumericValidator': 'NumericValidatorMsg'};\r\n\r\n    return null;\r\n  }\r\n\r\n  static ArabicValidator(control: AbstractControl) {\r\n    if (control.value === null || control.value === '') {\r\n      return null;\r\n    }\r\n    if (!control.value.toString().match(/^[\\u0600-\\u06FF\\s]*$/))\r\n      return {'ArabicValidator': 'ArabicValidatorMsg'};\r\n    return null;\r\n  }\r\n\r\n  static EnglishValidator(control: AbstractControl) {\r\n    if (control.value === null || control.value === '') {\r\n      return null;\r\n    }\r\n    if (!control.value.toString().match(/^[a-zA-Z\\s]*$/))\r\n      return {'EnglishValidator': 'EnglishValidatorMsg'};\r\n    return null;\r\n  }\r\n\r\n  static ArabicWithSpecCharsValidator(control: AbstractControl) {\r\n    if (control.value === null || control.value === '') {\r\n      return null;\r\n    }\r\n    if (!control.value.toString().match(/^[\\u0600-\\u06FF\\s\\d\\(\\)\\[\\]{}.,;:'\"<>!?@#$%^&*+=_\\-\\/*\\\\|`~]+$/u))\r\n      return {'ArabicWithSpecCharsValidator': 'ArabicWithSpecCharsValidatorMsg'};\r\n    return null;\r\n  }\r\n\r\n  static EnglishWithSpecCharsValidator(control: AbstractControl) {\r\n    if (control.value === null || control.value === '') {\r\n      return null;\r\n    }\r\n    if (!control.value.toString().match(/^[a-zA-Z\\s\\d\\(\\)\\[\\]{}.,;:'\"<>!?@#$%^&*+=_\\-\\/*\\\\|`~]+$/u))\r\n      return {'EnglishWithSpecCharsValidator': 'EnglishWithSpecCharsValidatorMsg'};\r\n    return null;\r\n  }\r\n\r\n  static AlphanumericValidator(control: AbstractControl) {\r\n    if (control.value === null || control.value === '') {\r\n      return null;\r\n    }\r\n    if (!control.value.toString().match(/^[a-zA-Z0-9]*$/))\r\n      return {'AlphanumericValidator': 'AlphanumericValidatorMsg'};\r\n    return null;\r\n  }\r\n\r\n  static FutureDateValidator(control: AbstractControl) {\r\n    if (control.value == null || control.value == \"\")\r\n      return null;\r\n    let selectedDate: Date;\r\n    const currentDate = new Date();\r\n    if (!isValidDate(control.value)) {\r\n      const [day, month, year] =\r\n        control.value.includes('-') ? control.value.split('-') :\r\n          control.value.includes('/') ? control.value.split('/') :\r\n            control.value.split('\\\\')\r\n      selectedDate = new Date(year, month - 1, day);\r\n      if (selectedDate > currentDate) {\r\n        return null;\r\n      }\r\n      return {'FutureDateValidator': 'FutureDateValidatorMsg'};\r\n    }\r\n    selectedDate = new Date(control.value);\r\n    if (selectedDate > currentDate) {\r\n      return null;\r\n    }\r\n\r\n    return {'FutureDateValidator': 'FutureDateValidatorMsg'};\r\n  }\r\n\r\n  static PastDateValidator(control: AbstractControl) {\r\n    if (control.value == null || control.value == \"\")\r\n      return null;\r\n    const currentDate = new Date();\r\n    let selectedDate: Date;\r\n    if (!isValidDate(control.value)) {\r\n      const [day, month, year] =\r\n        control.value.includes('-') ? control.value.split('-') :\r\n          control.value.includes('/') ? control.value.split('/') :\r\n            control.value.split('\\\\')\r\n      selectedDate = new Date(year, month - 1, day);\r\n      if (selectedDate < currentDate) {\r\n        return null;\r\n      }\r\n      return {'PastDateValidator': 'PastDateValidatorMsg'};\r\n    }\r\n    selectedDate = new Date(control.value);\r\n    if (selectedDate < currentDate) {\r\n      return null;\r\n    }\r\n    return {'PastDateValidator': 'PastDateValidatorMsg'};\r\n  }\r\n\r\n  static EmailValidator(control: AbstractControl) {\r\n    if (control.value === null || control.value === '') {\r\n      return null;\r\n    }\r\n    if (!control.value.toString().match(/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$/))\r\n      return {'EmailValidator': 'EmailValidatorMsg'};\r\n    return null;\r\n  }\r\n\r\n  static PasswordValidator(control: AbstractControl) {\r\n    if (control.value === null || control.value === '') {\r\n      return null;\r\n    }\r\n    // password must be Minimum 6 characters  >>  at least one letter, one number and one special character\r\n    if (!control.value.toString().match(/^(?=.*[A-Za-z])(?=.*\\\\d)(?=.*[@$!%*#?&])[A-Za-z\\\\d@$!%*#?&]{6,}$'/))\r\n      return {'PasswordValidator': 'PasswordValidatorMsg'};\r\n    return null;\r\n  }\r\n\r\n  // static MinNumberDigitValidator(control: AbstractControl,minDigit:number) {\r\n  //   if (control.value === null || control.value === '') {\r\n  //     return null;\r\n  //   }\r\n  //   const regexPattern = new RegExp(`^[0-9]{${minDigit - 1} , 10}$`);\r\n  //   if (!regexPattern.test(control.value))\r\n  //     return {'MinNumberDigitValidator': 'MinNumberDigitValidatorMsg'};\r\n  //   return null;\r\n  // }\r\n\r\n  // static MaxNumberDigitValidator(control: AbstractControl,maxDigit:number) {\r\n  //   if (control.value === null || control.value === '') {\r\n  //     return null;\r\n  //   }\r\n  //   const regexPattern = new RegExp(`^[0-9]{1,${maxDigit + 1}}$`);\r\n  //   if (!regexPattern.test(control.value))\r\n  //     return {'MaxNumberDigitValidator': 'MaxNumberDigitValidatorMsg'};\r\n  //   return null;\r\n  // }\r\n  static KsaIdentityValidator(control: AbstractControl) {\r\n    if (control.value === null || control.value === '') {\r\n      return null;\r\n    }\r\n    if (!control.value.toString().match(/^[1-2][0-9]{9}$/))\r\n      return {'KsaIdentityValidator': 'KsaIdentityValidatorMsg'};\r\n    return null;\r\n  }\r\n\r\n  static KsaSaudiNationalIdValidator(control: AbstractControl) {\r\n    if (control.value === null || control.value === '') {\r\n      return null;\r\n    }\r\n    if (!control.value.toString().match(/^1[0-9]{9}$/))\r\n      return {'KsaSaudiNationalIdValidator': 'KsaSaudiNationalIdValidatorMsg'};\r\n    return null;\r\n  }\r\n\r\n  static KsaSaudiIqamaValidator(control: AbstractControl) {\r\n    if (control.value === null || control.value === '') {\r\n      return null;\r\n    }\r\n    if (!control.value.toString().match(/^2[0-9]{9}$/))\r\n      return {'KsaSaudiIqamaValidator': 'KsaSaudiIqamaValidatorMsg'};\r\n    return null;\r\n  }\r\n\r\n  static KsaSaudiIdentityValidator(control: AbstractControl) {\r\n    if (control.value === null || control.value === '') {\r\n      return null;\r\n    }\r\n    //Saudi National ID Number starts with 1 and expats ID Number starts with 2\r\n    if (!control.value.toString().match(/^\\1[0-9]{9}$/)) //Validators.pattern('^[1-2][0-9]{9}')\r\n      return {'KsaSaudiIdentityValidator': 'KsaSaudiIdentityValidatorMsg'};\r\n    return null;\r\n  }\r\n\r\n  static KsaLicenceNumValidator(control: AbstractControl) {\r\n    if (control.value === null || control.value === '') {\r\n      return null;\r\n    }\r\n    //Saudi National ID Number starts with 1 and expats ID Number starts with 2\r\n    if (!control.value.toString().match(/^[1-2][0-9]{9}$/)) //Validators.pattern('^[1-2][0-9]{9}')\r\n      return {'KsaLicenceNumValidator': 'KsaLicenceNumValidatorMsg'};\r\n    return null;\r\n  }\r\n\r\n  static KsaHotelRoomNumValidator(control: AbstractControl) {\r\n    if (control.value === null || control.value === '') {\r\n      return null;\r\n    }\r\n    if (!control.value.toString().match(/^[0-9]{1,4}$/))\r\n      return {'KsaHotelRoomNumValidator': 'KsaHotelRoomNumValidatorMsg'};\r\n    return null;\r\n  }\r\n\r\n  static KsaIbanValidator(control: AbstractControl) {\r\n    const iban = control.value;\r\n    if (!iban) {\r\n      return null;\r\n    }\r\n    const formattedIban = iban.replace(/\\s+/g, '').toUpperCase();\r\n    if (formattedIban.length !== 24) {\r\n      return {'KsaIbanValidator': 'KsaIbanValidatorMsg'};\r\n    }\r\n    if (!formattedIban.startsWith(\"SA\")) {\r\n      return {'KsaIbanValidator': 'KsaIbanValidatorMsg'};\r\n    }\r\n    // const reorderedIban = formattedIban.substring(4) + formattedIban.substring(0, 4);\r\n    //\r\n    // let numericIban = '';\r\n    // for (const char of reorderedIban) {\r\n    //   if (char >= 'A' && char <= 'Z') {\r\n    //     numericIban += (char.charCodeAt(0) - 'A'.charCodeAt(0) + 10).toString();\r\n    //   } else {\r\n    //     numericIban += char;\r\n    //   }\r\n    // }\r\n    //\r\n    // const remainder = BigInt(numericIban) % 97n;\r\n    //\r\n    // if (remainder !== 1n) {\r\n    //   return { 'invalidIban': true };\r\n    // }\r\n\r\n    return null;\r\n  }\r\n\r\n  static MobileNumberNotStartWithZeroValidator(control: AbstractControl) {\r\n    if (control.value === null || control.value === '') {\r\n      return null;\r\n    }\r\n    if (!control.value.toString().match(/^[1-9][0-9]{5,14}$/))\r\n      return {'MobileNumberNotStartWithZeroValidator': 'MobileNumberNotStartWithZeroValidatorMsg'};\r\n    return null;\r\n  }\r\n\r\n  static MobileNumberValidator(control: AbstractControl) {\r\n    if (control.value === null || control.value === '') {\r\n      return null;\r\n    }\r\n    if (!control.value.toString().match(/^\\d{6,15}$/))\r\n      return {'MobileNumberValidator': 'MobileNumberValidatorMsg'};\r\n    return null;\r\n  }\r\n\r\n  static PassportNumberValidator(control: AbstractControl) {\r\n    if (control.value === null || control.value === '') {\r\n      return null;\r\n    }\r\n    if (!control.value.toString().match(/^[A-Za-z0-9]{6,15}$/))\r\n      return {'PassportNumberValidator': 'PassportNumberValidatorMsg'};\r\n    return null;\r\n  }\r\n\r\n  static DiplomaticPassportNumberValidator(control: AbstractControl) {\r\n    if (control.value === null || control.value === '') {\r\n      return null;\r\n    }\r\n    if (!control.value.toString().match(/^[A-Za-z0-9]{4,15}$/))\r\n      return {'PassportNumberValidator': 'PassportNumberValidatorMsg'};\r\n    return null;\r\n  }\r\n\r\n  static GccIdValidator(control: AbstractControl) {\r\n    if (control.value === null || control.value === '') {\r\n      return null;\r\n    }\r\n    if (!control.value.toString().match(/^\\d{6,15}$/))\r\n      return {'GccIdValidator': 'GccIdValidatorMsg'};\r\n    return null;\r\n  }\r\n}\r\n","import {GenericResponseElement} from \"./GenericResponseElement\";\r\n\r\n\r\nexport class GenericResponseRoot<T> {\r\n    response: GenericResponseElement<T>;\r\n\r\n  constructor(response: GenericResponseElement<T>) {\r\n    this.response = response;\r\n  }\r\n}\r\n","export   class GenericResponseElement<T> {\r\n  data: T;\r\n  responseCode: number;\r\n  responseDesc: string;\r\n  requestUUID: string;\r\n\r\n\r\n  constructor(data: T, responseCode: number, responseDesc: string, requestUUID: string) {\r\n    this.data = data;\r\n    this.responseCode = responseCode;\r\n    this.responseDesc = responseDesc;\r\n    this.requestUUID = requestUUID;\r\n  }\r\n}\r\n","export class DropdownModel {\r\n    nameAr?:string;\r\n    nameEn?:String;\r\n    value:any;\r\n\r\n    constructor(nameAr: string, nameEn: String, value: any) {\r\n        this.nameAr = nameAr;\r\n        this.nameEn = nameEn;\r\n        this.value = value;\r\n    }\r\n}\r\n","export enum HintTypeEnum {\r\n  TEXT=\"text\",\r\n  ORDERLIST=\"orderList\",\r\n}\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class ApplicationConfigService {\r\n  private endpointPrefix = '';\r\n  private microfrontend = false;\r\n\r\n  setEndpointPrefix(endpointPrefix: string): void {\r\n    this.endpointPrefix = endpointPrefix;\r\n  }\r\n\r\n  setMicrofrontend(microfrontend = true): void {\r\n    this.microfrontend = microfrontend;\r\n  }\r\n\r\n  isMicrofrontend(): boolean {\r\n    return this.microfrontend;\r\n  }\r\n\r\n  getEndpointFor(api: string, microservice?: string): string {\r\n    if (microservice) {\r\n      return `${this.endpointPrefix}services/${microservice}/${api}`;\r\n    }\r\n    return `${this.endpointPrefix}${api}`;\r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {\r\n  HttpErrorResponse,\r\n  HttpEvent,\r\n  HttpHandler,\r\n  HttpInterceptor,\r\n  HttpRequest,\r\n  HttpResponse\r\n} from '@angular/common/http';\r\nimport {Observable, tap, throwError} from 'rxjs';\r\nimport {ApplicationConfigService} from \"./config/application-config.service\";\r\nimport {LocalStorageService, SessionStorageService} from \"ngx-webstorage\";\r\nimport {Router} from \"@angular/router\";\r\nimport {catchError} from \"rxjs/operators\";\r\nimport {SpinnerService} from \"../spinner/spinner.service\";\r\n\r\n\r\n\r\n\r\n@Injectable()\r\nexport class AuthInterceptor implements HttpInterceptor {\r\n  private STATUS_NOT_FOUND: number = 404;\r\n  private STATUS_NOT_AUTHORIZED: number = 401;\r\n\r\n  constructor(\r\n    private localStorageService: LocalStorageService,\r\n    private sessionStorageService: SessionStorageService,\r\n    private applicationConfigService: ApplicationConfigService,\r\n    private router: Router,\r\n    private spinnerService: SpinnerService\r\n  ) {\r\n  }\r\n\r\n  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n    request = this.prepareRequest(request)\r\n    this.spinnerService.setLoading(true, request.url);\r\n    return next.handle(request).pipe(\r\n      tap({\r\n        next: (event: HttpEvent<any>) => {\r\n          if (event instanceof HttpResponse) {\r\n            this.spinnerService.setLoading(false, request.url);\r\n          }\r\n        },\r\n        error: (error) => {\r\n          this.spinnerService.setLoading(false, request.url);\r\n          throwError(error);\r\n        },\r\n        finalize: () => {\r\n          this.spinnerService.setLoading(false, request.url);\r\n\r\n        }\r\n      }),\r\n      catchError((error: HttpErrorResponse) => {\r\n        // debugger\r\n        let errorMsg = '';\r\n        if (error.error instanceof ErrorEvent) {\r\n          console.log('this is client side error');\r\n          errorMsg = `Error: ${error.error.message}`;\r\n        } else {\r\n          console.log('this is server side error');\r\n          errorMsg = `Error Code: ${error.status},  Message: ${error.message}`;\r\n          if (error.status == this.STATUS_NOT_AUTHORIZED) {\r\n            console.error(\"STATUS_NOT_AUTHENTICATED\");\r\n            this.router.navigate([\"/auth/access\"]);\r\n          }\r\n          if (error.status == this.STATUS_NOT_FOUND) {\r\n            console.error(\"STATUS_NOT_FOUND \");\r\n            this.router.navigate([\"/notfound\"]);\r\n          }\r\n\r\n        }\r\n        console.log(errorMsg);\r\n        this.spinnerService.setLoading(false, request.url);\r\n        return throwError(errorMsg);\r\n      })\r\n    );\r\n  }\r\n\r\n\r\n  prepareRequest(request: HttpRequest<any> ) {\r\n    const isLocalReq: Boolean = request.url.toString().startsWith('assets');\r\n    const serverApiUrl = isLocalReq ? request.url : this.applicationConfigService.getEndpointFor(request.url);\r\n      const token: string | null = this.localStorageService.retrieve('authenticationToken') ?? this.sessionStorageService.retrieve('authenticationToken');\r\n      return  token ? request.clone({setHeaders: {Authorization: `Bearer ${token}`,}, url: `${serverApiUrl}`})\r\n        : request.clone({url: `${serverApiUrl}`});\r\n  }\r\n}\r\n\r\n\r\n","import {ActivatedRouteSnapshot, Router, RouterStateSnapshot, UrlTree} from '@angular/router';\r\nimport {Observable} from 'rxjs';\r\nimport {Injectable} from '@angular/core';\r\nimport {LocalStorageService, SessionStorageService} from \"ngx-webstorage\";\r\n\r\n\r\n@Injectable()\r\nexport class AuthenticationGuard {\r\n\r\n  constructor(private router: Router, private localStorageService: LocalStorageService,\r\n              private sessionStorageService: SessionStorageService) {\r\n  }\r\n\r\n\r\n  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\r\n    const token: string | null = this.localStorageService.retrieve('u_tk') ?? this.sessionStorageService.retrieve('authenticationToken');\r\n    if (token)\r\n      return true;\r\n    else\r\n      this.router.navigate([\"/login\"]);\r\n      return false;\r\n  }\r\n\r\n}\r\n","import {ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree} from '@angular/router';\r\nimport {Observable} from 'rxjs';\r\nimport {Injectable} from '@angular/core';\r\n\r\n\r\n@Injectable()\r\nexport class AuthorizationGuard implements CanActivate {\r\n\r\n  constructor(private router: Router) {\r\n  }\r\n\r\n\r\n  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\r\n    // console.log(route.firstChild.data);\r\n    /*  let pagePerm = route && route.firstChild.data[\"perm\"]   ? route.firstChild.data[\"perm\"] : null;\r\n      if(pagePerm) {\r\n          if( isUserHasPerm(parseInt(pagePerm)) )\r\n              return  true;\r\n          else\r\n              this.router.navigate([\"/error\"])\r\n\r\n      }\r\n      else {\r\n          return true;\r\n      }*/\r\n    return true;\r\n  }\r\n\r\n  public isUserHasPerm(permCode: number): boolean {\r\n    return true;\r\n    /*    let hasPerm = false;\r\n        let permissions = localStorage.getItem('perms');\r\n        if (permissions)\r\n          permissions.split(\",\").forEach(perm => {\r\n            if (permCode == parseInt(perm)) {\r\n              hasPerm = true;\r\n              return true;\r\n            }\r\n          });\r\n        return hasPerm;*/\r\n  }\r\n\r\n}\r\n\r\n// .map(xx => xx.toUpperCase())\r\n","import {NgClass, NgForOf, NgIf} from '@angular/common';\r\nimport {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {\r\n  NgbCalendar,\r\n  NgbCalendarIslamicUmalqura, NgbDate,\r\n  NgbDateAdapter,\r\n  NgbDateParserFormatter,\r\n  NgbDatepickerI18n, NgbDateStruct,\r\n  NgbModule,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport {TranslateModule, TranslateService} from \"@ngx-translate/core\";\r\nimport {PaginatorModule} from \"primeng/paginator\";\r\nimport {InputTextModule} from \"primeng/inputtext\";\r\nimport {ReactiveFormsModule, Validators} from \"@angular/forms\";\r\nimport {IslamicI18n} from \"../service/IslamicI18n\";\r\nimport {CustomAdapter} from \"../service/CustomAdapter\";\r\nimport {CustomDateParserFormatter} from \"../service/CustomDateParserFormatter\";\r\n\r\n@Component({\r\n  selector: 'g-hijri-calendar',\r\n  templateUrl: './datepicker-hijri.component.html',\r\n  styleUrls: ['./datepicker-hijri.component.scss'],\r\n  standalone: true,\r\n  providers: [\r\n    {provide: NgbCalendar, useClass: NgbCalendarIslamicUmalqura},\r\n    {provide: NgbDatepickerI18n, useClass: IslamicI18n},\r\n    {provide: NgbDateAdapter, useClass: CustomAdapter},\r\n    {provide: NgbDateParserFormatter, useClass: CustomDateParserFormatter},\r\n    CustomAdapter\r\n  ],\r\n  imports: [NgbModule, PaginatorModule, InputTextModule, TranslateModule, NgIf, ReactiveFormsModule, NgClass, NgForOf]\r\n})\r\nexport class DatepickerHijriComponent implements OnInit {\r\n  protected readonly Validators = Validators;\r\n  @Output() valueChange = new EventEmitter<number>();\r\n  @Input() showButton: boolean = false;\r\n  @Input() label: string;\r\n  @Input() labelText: string;\r\n  @Input() labelFontWeight: string | number = '500';\r\n  @Input() inputFormControl: any;\r\n  @Input() customValidationsKeys: string[];\r\n  @Input() startDate: number = 13600101;\r\n  @Input() endDate: number = 15001230;\r\n  @Input() patternErrorMessage: string;\r\n  @Input() placeholder: string;\r\n  @Input() hint: string;\r\n  @Input() disabledHijriDateDates: number[] = [];\r\n  @Input() enabledHijriDateDates: number[] = [];\r\n  minDate: NgbDateStruct | null;\r\n  maxDate: NgbDateStruct | null;\r\n\r\n  constructor(private _customAdapter: CustomAdapter) {\r\n  }\r\n\r\n  onDateSelect(event: any) {\r\n    const year = event.year + '';\r\n    const month = event.month < 10 ? '0' + event.month : event.month + '';\r\n    const day = event.day < 10 ? '0' + event.day : event.day + '';\r\n    const finalDate = year + month + day;\r\n    this.valueChange.emit(parseInt(finalDate));\r\n  }\r\n\r\n  ngOnInit() {\r\n    if (!this.inputFormControl)\r\n      throw new Error('Yo must provide inputFormControl as input => Example :' +\r\n        '[inputFormControl]=\"yourFormGroup.get(yourFormControllerName)\"');\r\n    this.minDate = this._customAdapter.fromModel(this.startDate);\r\n    this.maxDate = this._customAdapter.fromModel(this.endDate);\r\n  }\r\n\r\n  disableHijriDates(date: NgbDate, current?: { year: number, month: number }): boolean {\r\n    // Format the date as YYYYMMDD\r\n    const yearStr = date.year.toString();\r\n    const monthStr = date.month < 10 ? '0' + date.month : date.month.toString();\r\n    const dayStr = date.day < 10 ? '0' + date.day : date.day.toString();\r\n    const hijriDate = parseInt(yearStr + monthStr + dayStr);\r\n\r\n    // Check if the date is explicitly disabled\r\n    if (this.disabledHijriDateDates && this.disabledHijriDateDates.length > 0) {\r\n      const isDisabled = this.disabledHijriDateDates?.some(\r\n        (disabledDate: number) => disabledDate === hijriDate\r\n      );\r\n\r\n      if (isDisabled) {\r\n        return true;  // Explicitly disabled\r\n      }\r\n    }\r\n\r\n    // Check if the date is explicitly enabled\r\n    if (this.enabledHijriDateDates && this.enabledHijriDateDates.length > 0) {\r\n      const isEnabled = this.enabledHijriDateDates?.some(\r\n        (enabledDate: number) => enabledDate === hijriDate\r\n      );\r\n   // Disable if not explicitly enabled\r\n      return !isEnabled;\r\n    }\r\n    return false;\r\n  }\r\n\r\n\r\n}\r\n","<ng-container *ngIf=\"inputFormControl\">\r\n  <label>{{ label ? (label | translate) : labelText }}\r\n    <span *ngIf=\"inputFormControl.hasValidator(Validators.required) && label\"\r\n          [ngClass]=\"{\r\n        'error1':  inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.required,\r\n        'default-color': !inputFormControl.errors\r\n        }\">\r\n    *\r\n  </span>\r\n  </label>\r\n  <div class=\"input-group\">\r\n  <span class=\"p-input-icon-right\">\r\n  <i class=\"fa fa-calendar-alt d-flex justify-content-center align-items-center\" #hcIcon></i>\r\n  <input\r\n    type=\"text\" pInputText\r\n    class=\"inputText formInput\"\r\n    [placeholder]=\"placeholder ? (placeholder|translate) : 'yyyy-mm-dd'\"\r\n    [formControl]=\"inputFormControl\"\r\n    (dateSelect)=\"onDateSelect($event)\"\r\n    [firstDayOfWeek]=\"7\"\r\n    [readOnly]=\"true\"\r\n    ngbDatepicker\r\n    #dp=\"ngbDatepicker\"\r\n    [minDate]=\"minDate!\"\r\n    [maxDate]=\"maxDate!\"\r\n    (click)=\"dp.toggle()\"\r\n    [markDisabled]=\"disableHijriDates.bind(this)\"\r\n\r\n  />\r\n  </span>\r\n    <button *ngIf=\"showButton\" class=\"btn btn-outline-secondary d-flex justify-content-center align-items-center\"\r\n            (click)=\"dp.toggle()\" type=\"button\">\r\n      <img src=\"content/images/1814093-20.png\" alt=\"\"/>\r\n    </button>\r\n\r\n    <div *ngIf=\"inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.required\"\r\n         class=\"error\">\r\n      <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n        <path\r\n          d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n          fill=\"#B42318\"/>\r\n        <path\r\n          d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n          fill=\"#B42318\"/>\r\n        <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n              d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n              fill=\"#B42318\"/>\r\n      </svg>\r\n      {{ 'requiredErrorMessage' | translate }}\r\n    </div>\r\n\r\n    <div\r\n      *ngIf=\"inputFormControl.touched && inputFormControl.errors && !inputFormControl.errors.pattern && !inputFormControl.errors.required && !customValidationsKeys\"\r\n      class=\"error\">\r\n      <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n        <path\r\n          d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n          fill=\"#B42318\"/>\r\n        <path\r\n          d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n          fill=\"#B42318\"/>\r\n        <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n              d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n              fill=\"#B42318\"/>\r\n      </svg>\r\n      {{ 'genericErrorMsg' | translate }}\r\n    </div>\r\n\r\n    <div *ngIf=\"inputFormControl.touched && inputFormControl.errors && inputFormControl.errors.pattern\"\r\n         class=\"error\">\r\n      <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n        <path\r\n          d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n          fill=\"#B42318\"/>\r\n        <path\r\n          d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n          fill=\"#B42318\"/>\r\n        <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n              d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n              fill=\"#B42318\"/>\r\n      </svg>\r\n      {{ patternErrorMessage || 'genericErrorMsg' | translate }}\r\n    </div>\r\n\r\n    <ng-container *ngIf=\"customValidationsKeys\">\r\n      <div *ngFor=\"let key of customValidationsKeys\">\r\n        <div\r\n          *ngIf=\"inputFormControl.touched && inputFormControl.errors && !inputFormControl.errors.pattern && !inputFormControl.errors.required && inputFormControl.errors[key]\"\r\n          class=\"error\">\r\n          <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n            <path\r\n              d=\"M7.99967 5.16927C7.53944 5.16927 7.16634 5.54237 7.16634 6.0026C7.16634 6.27874 6.94248 6.5026 6.66634 6.5026C6.3902 6.5026 6.16634 6.27874 6.16634 6.0026C6.16634 4.99008 6.98715 4.16927 7.99967 4.16927C9.01219 4.16927 9.83301 4.99008 9.83301 6.0026C9.83301 6.36683 9.72628 6.70765 9.54222 6.99369C9.42694 7.17285 9.29215 7.3439 9.16787 7.49836L9.10084 7.58144C8.99774 7.70905 8.90305 7.82625 8.81559 7.94645C8.59987 8.24293 8.49967 8.46573 8.49967 8.66927V9.0026C8.49967 9.27874 8.27581 9.5026 7.99967 9.5026C7.72353 9.5026 7.49967 9.27874 7.49967 9.0026V8.66927C7.49967 8.13643 7.76128 7.69578 8.00698 7.3581C8.11079 7.21543 8.22455 7.07471 8.32799 6.94676L8.38877 6.87146C8.51223 6.71802 8.61732 6.58304 8.70127 6.45257C8.78461 6.32306 8.83301 6.16925 8.83301 6.0026C8.83301 5.54237 8.45991 5.16927 7.99967 5.16927Z\"\r\n              fill=\"#B42318\"/>\r\n            <path\r\n              d=\"M7.99446 10.6693C7.62627 10.6693 7.3278 10.9677 7.3278 11.3359C7.3278 11.7041 7.62627 12.0026 7.99446 12.0026H8.00045C8.36864 12.0026 8.66712 11.7041 8.66712 11.3359C8.66712 10.9677 8.36864 10.6693 8.00045 10.6693H7.99446Z\"\r\n              fill=\"#B42318\"/>\r\n            <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n                  d=\"M0.833008 8.0026C0.833008 4.04456 4.04163 0.835938 7.99967 0.835938C11.9577 0.835938 15.1663 4.04456 15.1663 8.0026C15.1663 11.9606 11.9577 15.1693 7.99967 15.1693C4.04163 15.1693 0.833008 11.9606 0.833008 8.0026ZM7.99967 1.83594C4.59392 1.83594 1.83301 4.59685 1.83301 8.0026C1.83301 11.4084 4.59392 14.1693 7.99967 14.1693C11.4054 14.1693 14.1663 11.4084 14.1663 8.0026C14.1663 4.59685 11.4054 1.83594 7.99967 1.83594Z\"\r\n                  fill=\"#B42318\"/>\r\n          </svg>\r\n          {{ inputFormControl.errors[key] | translate }}\r\n        </div>\r\n      </div>\r\n    </ng-container>\r\n    <div class=\"mat-hint mb-2\" *ngIf=\"hint\">\r\n      {{ hint|translate }}<span>&nbsp;</span>\r\n    </div>\r\n  </div>\r\n</ng-container>\r\n","import { NgClass, NgIf } from '@angular/common';\r\nimport {Component, inject, WritableSignal} from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport {GMessagesService} from \"../../service/g-messages.service\";\r\nimport {PopupMessageIconType} from \"../enum/popup-message-icon-type.enum\";\r\nimport {IGPopupMessage} from \"../model/g-popup-message.model\";\r\nimport {TooltipModule} from \"primeng/tooltip\";\r\n\r\n@Component({\r\n  selector: 'g-message',\r\n  standalone: true,\r\n  imports: [NgIf, NgClass, TranslateModule, TooltipModule],\r\n  templateUrl: './generic-message.component.html',\r\n  styleUrls: ['./generic-message.component.scss'],\r\n})\r\nexport class GMessageComponent {\r\n  #gPopupMessageService: GMessagesService = inject(GMessagesService);\r\n  popupMessageIconTypes: typeof PopupMessageIconType = PopupMessageIconType;\r\n  gPopupMessage: WritableSignal<IGPopupMessage | null> = this.#gPopupMessageService.gPopupMessage;\r\n\r\n  onPrimaryAction() {\r\n    if(this.gPopupMessage()?.primaryAction){\r\n      this.gPopupMessage()?.primaryAction!();\r\n    }\r\n  }\r\n\r\n  onDangerAction() {\r\n    if(this.gPopupMessage()?.dangerAction){\r\n      this.gPopupMessage()?.dangerAction!();\r\n    }\r\n  }\r\n\r\n  onSuccessAction() {\r\n    if(this.gPopupMessage()?.successAction){\r\n      this.gPopupMessage()?.successAction!();\r\n    }\r\n  }\r\n\r\n  onSecondaryAction() {\r\n    if(this.gPopupMessage()?.secondaryAction){\r\n      this.gPopupMessage()?.secondaryAction!();\r\n    }\r\n  }\r\n  onClose() {\r\n    if(this.gPopupMessage()?.close){\r\n      this.gPopupMessage()?.close!();\r\n    }\r\n  }\r\n\r\n  copyUUID():void {\r\n    navigator.clipboard.writeText(this.gPopupMessage()?.uuid ?? '');\r\n  }\r\n}\r\n","<div class=\"popup-container popup-message-card\">\r\n  <div class=\"popup\"  [class.active]=\"gPopupMessage()?.visible\" [class]=\"'custom-popup-'+gPopupMessage()?.iconType\">\r\n    <button (click)=\"onClose()\" class=\"close-popup\">\r\n      <svg\r\n        width=\"100%\"\r\n        height=\"100%\"\r\n        viewBox=\"0 0 14 14\"\r\n        fill=\"none\"\r\n        xmlns=\"http://www.w3.org/2000/svg\"\r\n      >\r\n        <path\r\n          d=\"M13 1L1 13M1 1L13 13\"\r\n          stroke=\"#C41A1A\"\r\n          stroke-width=\"2\"\r\n          stroke-linecap=\"round\"\r\n          stroke-linejoin=\"round\"\r\n        />\r\n      </svg>\r\n    </button>\r\n    <ng-container *ngIf=\"gPopupMessage()?.showIcon\">\r\n      <div class=\"popup-icon alert\" *ngIf=\"gPopupMessage()?.iconType === popupMessageIconTypes.Alert\">\r\n        <svg\r\n          width=\"100%\"\r\n          height=\"100%\"\r\n          viewBox=\"0 0 32 32\"\r\n          fill=\"none\"\r\n          xmlns=\"http://www.w3.org/2000/svg\"\r\n        >\r\n          <path\r\n            d=\"M15.1069 10.4176V15.4096C15.1069 16.0192 15.5608 16.7462 16.0654 17.0691C16.57 17.3919 16.8951 17.1357 16.8951 16.5904V11.5984C16.8951 10.9888 16.4413 10.2618 15.9367 9.9389C15.4321 9.61603 15.1069 9.87229 15.1069 10.4176Z\"\r\n            fill=\"#F0BD66\"\r\n          />\r\n          <path\r\n            d=\"M16.4979 22.2135H16.5103C16.6164 22.2169 16.6988 22.1797 16.7564 22.0995C16.8399 22.0352 16.8851 21.946 16.8941 21.8342C16.9178 21.6999 16.9144 21.5678 16.884 21.4368C16.867 21.2777 16.8252 21.1241 16.7586 20.9774L16.5995 20.6534C16.4843 20.4513 16.3443 20.2695 16.1773 20.107L15.9481 19.923C15.8183 19.8293 15.6738 19.7785 15.5146 19.7706H15.5022C15.3961 19.7672 15.3136 19.8044 15.2561 19.8846C15.1725 19.9489 15.1274 20.0381 15.1183 20.1499C15.0946 20.2842 15.098 20.4163 15.1285 20.5473C15.1454 20.7064 15.1872 20.86 15.2538 21.0067L15.413 21.3307C15.5281 21.5328 15.6681 21.7145 15.8352 21.8771L16.0644 22.0611C16.1942 22.1548 16.3387 22.2056 16.4979 22.2135Z\"\r\n            fill=\"#F0BD66\"\r\n          />\r\n          <path\r\n            d=\"M27.587 15.4107C27.5565 20.3 24.3617 24.7118 19.8337 26.4672C15.3056 28.2227 9.89817 27.0102 6.86254 23.4282C6.5566 23.0681 6.16149 22.5307 6.01586 22.2993C5.6467 21.7078 5.44802 21.3284 5.21772 20.7753C4.80454 19.7818 4.53473 18.6812 4.44893 17.5364C4.26492 15.0833 4.87566 12.6268 6.16036 10.5316C8.72072 6.35349 13.6845 4.08665 18.5219 4.90623C20.9998 5.32619 23.4597 6.66168 25.0425 8.46229C25.5031 8.9861 25.8609 9.48847 26.1398 9.95584C26.4965 10.5542 26.6432 10.8567 26.895 11.5058C27.3488 12.6754 27.5791 14.0707 27.587 15.4118C27.5904 16.0226 28.0386 16.7462 28.5455 17.0713C29.0523 17.3965 29.3786 17.1391 29.3752 16.5927C29.3391 10.8646 25.6938 5.37586 20.3631 3.23319C15.1973 1.15826 9.1847 2.69696 5.62187 6.95181C1.9247 11.3647 1.78245 17.7848 4.65214 22.6617C7.51392 27.5239 13.0941 30.5324 18.7511 29.5017C24.1337 28.5207 28.4089 24.1372 29.2239 18.7173C29.33 18.0151 29.3718 17.3028 29.3763 16.5938C29.3797 15.9853 28.9203 15.2561 28.4179 14.9343C27.9155 14.6126 27.5915 14.8688 27.5881 15.413L27.587 15.4107Z\"\r\n            fill=\"#F0BD66\"\r\n          />\r\n        </svg>\r\n      </div>\r\n      <div class=\"popup-icon err\" *ngIf=\"gPopupMessage()?.iconType === popupMessageIconTypes.Error\">\r\n        <svg\r\n          width=\"100%\"\r\n          height=\"100%\"\r\n          viewBox=\"0 0 32 32\"\r\n          fill=\"none\"\r\n          xmlns=\"http://www.w3.org/2000/svg\"\r\n        >\r\n          <path\r\n            d=\"M26.5226 3.62718C23.9939 6.15593 21.464 8.68581 18.9352 11.2146C14.9208 15.229 10.9053 19.2445 6.89093 23.2589C5.96748 24.1823 5.04516 25.1046 4.12172 26.0281C3.40712 26.7427 4.90179 28.9486 5.4764 28.3739C8.00516 25.8452 10.535 23.3153 13.0638 20.7866C17.0782 16.7722 21.0937 12.7566 25.1081 8.74225C26.0315 7.81881 26.9539 6.89649 27.8773 5.97304C28.5919 5.25845 27.0972 3.05256 26.5226 3.62718Z\"\r\n            fill=\"#C41A1A\"\r\n          />\r\n          <path\r\n            d=\"M4.63538 5.68518C7.16413 8.21393 9.69401 10.7438 12.2228 13.2726C16.2372 17.287 20.2527 21.3025 24.2671 25.3169L27.0363 28.0861C27.349 28.3988 27.9383 28.6212 28.0816 28.0432C28.225 27.4652 27.7565 26.7077 27.3648 26.3171C24.836 23.7883 22.3062 21.2585 19.7774 18.7297C15.763 14.7153 11.7475 10.6998 7.7331 6.68539C6.80965 5.76195 5.88733 4.83963 4.96389 3.91618C4.65118 3.60348 4.06189 3.38108 3.91852 3.95908C3.77515 4.53708 4.24365 5.29458 4.63538 5.68518Z\"\r\n            fill=\"#C41A1A\"\r\n          />\r\n        </svg>\r\n      </div>\r\n      <div class=\"popup-icon sucess\" *ngIf=\"gPopupMessage()?.iconType === popupMessageIconTypes.Success\">\r\n        <svg\r\n          xmlns=\"http://www.w3.org/2000/svg\"\r\n          width=\"100%\"\r\n          height=\"100%\"\r\n          viewBox=\"0 0 32 32\"\r\n          fill=\"none\"\r\n        >\r\n          <path\r\n            d=\"M26.5211 7.12652C24.7906 8.85713 23.0599 10.5877 21.3282 12.3195L13.0397 20.6079C12.3997 21.248 11.7607 21.887 11.1206 22.5271L11.9628 22.816C9.92735 20.7807 7.8908 18.7442 5.85539 16.7087C5.55735 16.4107 5.26046 16.1138 4.96242 15.8158C4.64971 15.503 4.06043 15.2806 3.91706 15.8586C3.77368 16.4366 4.24218 17.1942 4.63391 17.5847C6.66932 19.6202 8.70588 21.6567 10.7413 23.6922C11.0393 23.9902 11.3362 24.2871 11.6343 24.5851C11.7731 24.7239 12.2552 25.0954 12.4764 24.874C14.2071 23.1435 15.9376 21.4128 17.6694 19.6811C20.4319 16.9187 23.1954 14.1551 25.9579 11.3927C26.5979 10.7526 27.2368 10.1136 27.877 9.47352C28.5916 8.75892 27.097 6.55304 26.5223 7.12765L26.5211 7.12652Z\"\r\n            fill=\"#3CB496\"\r\n          />\r\n        </svg>\r\n      </div>\r\n    </ng-container>\r\n    <div class=\"popup-content\">\r\n      <h3 class=\"popup-title mb-2\" *ngIf=\"gPopupMessage()?.title\">{{ gPopupMessage()?.isTranslatedTitle ? (gPopupMessage()?.title! | translate:{errorCode: gPopupMessage()?.messageCode!}) : gPopupMessage()?.title }}</h3>\r\n      <div class=\"popup-description\">\r\n        {{gPopupMessage()?.isTranslatedMessage ? (gPopupMessage()?.message! | translate) : gPopupMessage()?.message}}\r\n        <div class=\"mt-2 popup-uuid d-flex gap-2\" *ngIf=\"gPopupMessage()?.uuid\">\r\n          <span>{{ gPopupMessage()?.uuid }}</span>\r\n          <span (click)=\"copyUUID()\" class=\"pi pi-copy\" [pTooltip]=\"'copy'|translate\" [tooltipPosition]=\"'top'\" appendTo=\"body\"></span>\r\n\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>\r\n","/*\r\n * Public API Surface of elm-common\r\n */\r\n// TODO revamp to public APIs and index\r\n\r\nexport * from './lib/elm-common.service';\r\nexport * from './lib/elm-common.component';\r\nexport * from './lib/elm-common.module';\r\n//Directives\r\n//export * from './lib/directive/translation/translation.module'\r\n//export * from './lib/directive/translation/translate.directive'\r\nexport * from './lib/directive/has-permision/has-permission.directive'\r\nexport * from './lib/directive/has-permision/has-permission.module'\r\n\r\n//datatable\r\nexport * from './lib/datatable/service/GDataTableService';\r\nexport * from './lib/datatable/component/dataTableModel/ColumnDefinition';\r\nexport * from './lib/datatable/component/dataTableModel/FilterCriteria';\r\nexport * from './lib/datatable/component/dataTableModel/SortCriteria';\r\nexport * from './lib/datatable/component/dataTableModel/InputDataModel';\r\nexport * from './lib/datatable/component/dataTableModel/ResponseDataModel';\r\nexport * from './lib/datatable/component/dataTableModel/ActionListDet';\r\nexport * from './lib/datatable/component/dataTableModel/alertMessage';\r\nexport * from './lib/datatable/component/dataTableModel/BadgesSeverityColorsMap';\r\nexport * from './lib/datatable/component/dataTableModel/FilterCriteria';\r\nexport * from './lib/datatable/component/dataTableModel/SortCriteria';\r\nexport * from './lib/datatable/component/dataTableModel/GenericCondition';\r\nexport * from './lib/datatable/component/g-datatable.component';\r\nexport * from './lib/datatable/component/dataTableModel/enum/InputValidatorsEnum';\r\nexport * from './lib/datatable/component/dataTableModel/enum/ColorEnum';\r\nexport * from './lib/datatable/component/dataTableModel/enum/ColumnTypEnum';\r\nexport * from './lib/datatable/component/dataTableModel/enum/FilterOperationEnum';\r\nexport * from './lib/datatable/component/dataTableModel/enum/SeverityTypeEnum';\r\nexport * from './lib/datatable/component/dataTableModel/enum/ActionRenderTypeEnum';\r\nexport * from './lib/datatable/component/dataTableModel/enum/ConditionOperatorsEnum';\r\nexport * from './lib/datatable/component/dataTableModel/enum/SortOrderEnum';\r\nexport * from './lib/datatable/component/dataTableModel/enum/FilterColumnTypeEnum';\r\nexport * from './lib/datatable/model/GTableProperties';\r\nexport * from './lib/datatable/component/dataTableModel/enum/ResponsiveLayoutEnum';\r\n\r\n\r\n//inputs\r\nexport * from './lib/inputs/enum/input-language.enum';\r\nexport * from './lib/inputs/input-text/input-text.component';\r\nexport * from './lib/inputs/input-number/input-number.component';\r\nexport * from './lib/inputs/checkbox/checkbox.component';\r\nexport * from './lib/inputs/dropdown/dropdown.component';\r\nexport * from './lib/inputs/calendars/calendar/calendar.component';\r\nexport * from './lib/inputs/calendars/date-time-calendar/date-time-calendar.component';\r\nexport * from './lib/inputs/file-upload/file-upload.component';\r\nexport * from './lib/inputs/radio-button/radio-button.component';\r\nexport * from './lib/inputs/g-text-area/g-text-area.component';\r\nexport * from './lib/inputs/enum/input-number-type';\r\nexport * from './lib/inputs/enum/input-display';\r\nexport * from './lib/inputs/multiselect/multiselect.component';\r\n//services\r\n// export * from './lib/service/translation.service';\r\n// export * from './lib/service/http-common.service';\r\n//export * from './lib/service/g-messages.service1';\r\nexport * from './lib/datatable/validators/manual-validator.service';\r\nexport * from './lib/service/dropdown.service';\r\n//bread-crumb\r\nexport * from './lib/bread-crumb/bread-crumb.component';\r\nexport * from './lib/bread-crumb/model/bread-crumb-model';\r\nexport * from './lib/bread-crumb/service/bread-crumb.service';\r\n\r\n\r\n\r\n//spinner\r\nexport * from './lib/spinner/spinner/spinner.component';\r\nexport * from './lib/spinner/spinner.service';\r\n\r\n//stepper\r\nexport * from './lib/stepper/stepper.component';\r\nexport * from './lib/stepper/enum/status.enum';\r\nexport * from './lib/stepper/enum/waiting-process.enum';\r\nexport * from './lib/stepper/StepsStatusComponents/approved-status/approved-status.component';\r\nexport * from './lib/stepper/StepsStatusComponents/canceled-status/canceled-status.component';\r\nexport * from './lib/stepper/StepsStatusComponents/uncomplete-status/uncomplete-status.component';\r\nexport * from './lib/stepper/StepsStatusComponents/unknown-status/unknown-status.component';\r\nexport * from './lib/stepper/StepsStatusComponents/waiting-status/waiting-status.component';\r\nexport * from './lib/stepper/StepsStatusComponents/default-status/default-status.component';\r\nexport * from './lib/stepper/model/StatusStep';\r\nexport * from './lib/stepper/model/status-modal';\r\nexport * from './lib/stepper/model/step-record-details';\r\nexport * from './lib/stepper/model/default-steps-info';\r\nexport * from './lib/stepper/service/stepperService.service';\r\n\r\n//validators\r\nexport * from './lib/validators/form-control-validation';\r\nexport * from './lib/datatable/validators/manual-validator.service';\r\n\r\n//models\r\nexport * from './lib/model/request-response/GenericResponseRoot';\r\nexport * from './lib/model/request-response/GenericResponseElement';\r\nexport * from './lib/model/DropdownModel';\r\nexport * from './lib/model/HintModal';\r\nexport * from './lib/model/HintTypeEnum';\r\n\r\n// interceptor\r\nexport * from './lib/interceptors/AuthInterceptor'\r\n\r\n// Guards\r\nexport * from './lib/guards/AuthenticationGuard';\r\nexport * from './lib/guards/AuthorizationGuard';\r\n// Hijri Calendar\r\nexport * from './lib/pipe/HijriDateFormat/HijriFormatPipe.module'\r\nexport * from './lib/inputs/hijri-calendars/ng-hijri-calendar/ng-datepicker-hijri.component'\r\nexport * from './lib/pipe/HijriDateFormat/HijriFormatPipe'\r\nexport * from './lib/inputs/hijri-calendars/hijri-calendar/datepicker-hijri.component'\r\n\r\n// Generic Message\r\nexport * from './lib/generic-message/component/generic-message.component';\r\nexport * from './lib/service/g-messages.service'\r\nexport * from './lib/generic-message/model/g-popup-message.model'\r\nexport * from './lib/generic-message/enum/popup-message-icon-type.enum'\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.GMessagesService","i1","i2","TranslationService","i1.CustomAdapter","i5","i1.GDataTableService","i2.ManualValidatorService","i3.GMessagesService","i4.DropdownService","i5.TranslationService","i6","i7.HijriFormatPipe","i8","i11","i15","i3","i4","i1.BreadCrumbService","i1.HttpCommonService","i1.StepperServiceService","i2.ApplicationConfigService","i4.SpinnerService"],"mappings":"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"}