{"version":3,"file":"vcomply-responsibility-quickview.mjs","sources":["../../../../projects/vcomply/responsibility-quickview/src/configuration.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/services/api.service.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/snack-bar/snack-bar.service.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/services/common.service.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/services/business.service.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/services/common-api.service.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/snack-bar/snack-bar/snack-bar.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/snack-bar/snack-bar/snack-bar.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/constants/iframe.constants.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/constants/session-storage.constants.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/constants/app-url.constants.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/services/session-storage.service.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/workflow/workflow.service.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/pipes/safeUrl.pipe.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/components/app-iframe/app-iframe.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/workflow/workflow/workflow.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/workflow/workflow/workflow.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/popover/popover.service.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/popover/popover.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/popover/popover.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/popover/popover.directive.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/tooltip/tooltip.directive.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/action-dialog/add-past-event/add-past-event.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/action-dialog/add-past-event/add-past-event.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/action-dialog/edit-due-date/edit-due-date.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/action-dialog/edit-due-date/edit-due-date.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/action-dialog/pause/pause.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/action-dialog/pause/pause.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/ui-dialog/ui-dialog-ref.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/ui-dialog/ui-dialog-config.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/action-dialog/transfer-handover/transfer-handover.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/action-dialog/transfer-handover/transfer-handover.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/popover/popover.module.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/services/quick-view.service.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/dialog-form/dialog-form.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/dialog-form/dialog-form.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/quickview/quick-view/add-new-due-date-dialog.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/quickview/quick-view/add-past-event-dialog.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/quickview/quick-view/add-past-event-dialog.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/components/dialog/confirm/confirm.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/components/dialog/confirm/confirm.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/services/organization-user.service.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/pipes/search.pipe.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/components/dialog/handover-transfer/handover-transfer.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/components/dialog/handover-transfer/handover-transfer.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/pipes/profile.pipe.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/components/dialog/delete-parent-resp/delete-parent-resp.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/components/dialog/delete-parent-resp/delete-parent-resp.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/constants/assets.constants.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/ui-dialog/ui-dialog-injector.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/ui-dialog/ui-insertion.directive.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/ui-dialog/ui-dialog.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/ui-dialog/ui-dialog.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/ui-dialog/ui-dialog.module.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/ui-dialog/ui-dialog.service.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/quickview/quick-view/quickview-loader/services/container.service.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/components/text-loader/text-loader.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/components/text-loader/text-loader.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/tooltip/tooltip.module.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/components/avatar/avatar.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/components/avatar/avatar.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/v-loader/v-loader-inline/v-loader-inline.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/v-loader/v-loader-inline/v-loader-inline.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/action-dialog/dialog/dialog.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/action-dialog/dialog/dialog.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/services/action.service.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/no-data/no-data.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/no-data/no-data.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/services/files.service.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/components/files/files.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/components/files/files.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/pipes/get-user-profile.pipe.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/components/log-editor/log-editor.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/components/log-editor/log-editor.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/pipes/editor-html.pipe.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/pipes/get-log-class.pipe.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/pipes/change-timezone.pipe.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/components/due-date-log/due-date-log.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/components/due-date-log/due-date-log.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/quickview/quick-view/quickview-loader/details-loader/details-loader.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/quickview/quick-view/quickview-loader/details-loader/details-loader.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/circle-progress/circle/circle.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/circle-progress/circle/circle.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/quickview/overview-performance/overview-performance.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/quickview/overview-performance/overview-performance.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/quickview/overview/overview.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/quickview/overview/overview.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/formgroup/cs-radio/cs-radio.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/formgroup/cs-radio/cs-radio.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/action-dialog/feedback-status/feedback-status.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/action-dialog/feedback-status/feedback-status.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/formgroup/cs-checkbox/cs-checkbox.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/formgroup/cs-checkbox/cs-checkbox.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/formgroup/cs-switch/cs-switch.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/formgroup/cs-switch/cs-switch.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/directive/stop-propagation.directive.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/quickview/completion-history/completion-loader/completion-loader.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/quickview/completion-history/completion-loader/completion-loader.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/components/skeleton-loader/skeleton-loader.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/components/skeleton-loader/skeleton-loader.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/quickview/completion-history/completion-history.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/quickview/completion-history/completion-history.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/action-dialog/upload-files/upload-files.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/action-dialog/upload-files/upload-files.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/directive/input-focus.directive.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/directive/drag-and-drop.directive.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/quickview/files-folders/files-folders-loader/files-folders-loader.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/quickview/files-folders/files-folders-loader/files-folders-loader.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/quickview/files-folders/files-folders.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/quickview/files-folders/files-folders.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/pipes/sanitize-html.pipe.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/pipes/strip-html.pipe.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/pipes/read-more.pipe.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/quickview/overview-details/overview-details.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/quickview/overview-details/overview-details.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/quickview/quick-view/quickview-loader/quickview-loader.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/quickview/quick-view/quickview-loader/quickview-loader.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/quickview/mark-as-complete/mark-as-complete.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/quickview/mark-as-complete/mark-as-complete.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/pipes/assignee-tooltip.pipe.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/quickview/quick-view/quick-view.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/quickview/quick-view/quick-view.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/responsibility-quickview-container/responsibility-quickview-container.component.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/responsibility-quickview-container/responsibility-quickview-container.component.html","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/formgroup/formgroup.module.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/action-dialog/action-dialog.module.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/directive/directive.module.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/no-data/no-data.module.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/pipes/pipes.module.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/components/log-editor/log-editor.module.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/components/text-loader/text-loader.module.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/components/due-date-log/due-date-log.module.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/interceptor/token.interceptor.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/components/dialog/dialog.module.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/dialog-form/dialog.module.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/snack-bar/snack-bar.module.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/v-loader/v-loader.module.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/shared/components/app-iframe/app-iframe.module.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/workflow/workflow.module.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/ui-elements/circle-progress/circle-progress.module.ts","../../../../projects/vcomply/responsibility-quickview/src/lib/responsibility-quickview.module.ts","../../../../projects/vcomply/responsibility-quickview/src/public-api.ts","../../../../projects/vcomply/responsibility-quickview/src/vcomply-responsibility-quickview.ts"],"sourcesContent":["export class Configurations {\n  public envConfig: any;\n\n  constructor() {\n    this.envConfig = {};\n  }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable,Optional } from '@angular/core';\nimport { Configurations } from '../../../configuration';\nimport { AuthorizerService } from '@vcomply/authorizer';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ApiService {\n  environment: any;\n  token: string = '';\n  constructor(private http: HttpClient, private authorizer: AuthorizerService,  @Optional() config?: Configurations) {\n    if(config) this.environment = config.envConfig;\n    localStorage.setItem('workflowConfig', JSON.stringify(this.environment))\n  }\n\n  get(uri: string, params: any = {}) {\n    return this.http.get(this.environment.baseUrl +`${uri}`, params);\n  }\n\n  post(uri: string, payload: Object) {\n    return this.http.post(this.environment.baseUrl +`${uri}`, payload);\n  }\n  put(uri: string, payload: Object) {\n    return this.http.put(this.environment.baseUrl +`${uri}`, payload);\n  }\n\n  patch(uri: string, payload: Object) {\n    return this.http.patch(this.environment.baseUrl +`/${uri}`, payload);\n  }\n\n  delete(uri: string) {\n    return this.http.delete(this.environment.baseUrl +`${uri}`);\n  }\n\n  nodeAPI(url: string, payload: any) {\n    return this.http.post(this.environment.fileUploadEndPoint +`/${url}`,payload);\n  }\n\n  getWithoutBaseUrl(uri: string, params: any = {}) {\n    return this.http.get(uri, params);\n  }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class SnackBarService {\n  private snackbarSubject = new Subject<any>();\n  public snackbarState = this.snackbarSubject.asObservable();\n  constructor() {\n  }\n\n  show(message: string, type?:'success'|'warning'|'info'|'alert'|'error') {\n    this.snackbarSubject.next({\n      show: true,\n      message,\n      icon:type,\n    });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { AuthorizerService } from '@vcomply/authorizer';\nimport { ApiService } from './api.service';\nimport { BehaviorSubject, catchError, map, of, Subject } from 'rxjs';\nimport { DatePipe, LowerCasePipe, PlatformLocation } from '@angular/common';\nimport { SnackBarService } from '../../ui-elements/snack-bar/snack-bar.service';\nimport { HttpHeaders } from '@angular/common/http';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class CommonService {\n  refreshLog$: Subject<any> = new Subject();\n  currentLocation: string = '';\n  refreshResponsibility$: Subject<any> = new Subject();\n  public notificationQueue: BehaviorSubject<any[]> = new BehaviorSubject<any[]>(\n    []\n  );\n\n  constructor(\n    private authorizer: AuthorizerService,\n    private apiService: ApiService,\n    private datePipe: DatePipe,\n    private snackBarService: SnackBarService,\n    private platformLocation: PlatformLocation\n  ) {\n    this.currentLocation = location?.origin;\n  }\n\n  changeTimeZone(value: any) {\n    if (typeof value === 'number') {\n      value = new Date(value);\n    }\n    const invDate = new Date(\n      value.toLocaleString('en-US', {\n        timeZone: this.authorizer.getUserTimezone(),\n      })\n    );\n    return invDate;\n  }\n\n  onAddComment(payload: any) {\n    const URL: string = 'compliance_post?mode=workroomComment/addComment';\n    this.apiService.post(URL, payload).subscribe({\n      next: (res: any) => {\n        this.refreshLog$.next(payload?.duedate_id);\n      },\n      error: (error: Error) => {\n        console.error('onAddComment ==>', error);\n      },\n    });\n  }\n\n  changeDueDateJSON(list: Array<any>, type: 'ASSIGNEE' | 'REVIEWER') {\n    const returnJSON: Array<any> = [];\n    if (type === 'ASSIGNEE') {\n      list.forEach((dueDate: any) => {\n        returnJSON.push(this.getAssigneeResponse(dueDate));\n      });\n    } else if (type === 'REVIEWER') {\n      list.forEach((dueDate: any) => {\n        returnJSON.push(this.getReviewerResponse(dueDate));\n      });\n    }\n    return returnJSON;\n  }\n\n  private getAssigneeResponse(dueDate: any) {\n    const GET_STATUS = (dueDate: any) => {\n      if (dueDate?.delayed_flag) {\n        return {\n          status: 'Delayed',\n          statusClass: 'partially-completed',\n        };\n      } else if (dueDate?.submit_flag) {\n        return {\n          status: 'Completed',\n          statusClass: 'success',\n        };\n      } else if (dueDate?.failed_flag) {\n        return {\n          status: 'Not Completed',\n          statusClass: 'failed',\n        };\n      } else if (\n        dueDate?.active_flag != 1 &&\n        [\n          'accept',\n          'insist',\n          'condone',\n          'redo',\n          'time_extension_accept',\n          'time_extension_request',\n          'time_extension_decline',\n          'cannot_comply_accept',\n          'cannot_comply_decline',\n          'cannot_comply',\n          'cannot_comply_accept_with_new_date',\n          'failed_mark_as_not_required',\n          '',\n        ].includes(dueDate?.action?.toLowerCase())\n      ) {\n        return {\n          status: 'closed',\n          statusClass: '',\n        };\n      } else {\n        return {\n          status: '--',\n          complianceStatus: '',\n          statusClass: '',\n        };\n      }\n    };\n\n    const GET_ACTION_DATE = (dueDate: any) => {\n      if (dueDate?.submit_flag) {\n        const SUBMIT_DATE = this.changeTimeZone(\n          dueDate?.submit_date_timestamp * 1000\n        );\n        return {\n          actionDate: this.datePipe.transform(SUBMIT_DATE, 'dd MMM yyyy'),\n          actionTime: this.datePipe.transform(SUBMIT_DATE, 'h:mm a'),\n        };\n      } else if (dueDate?.failed_flag) {\n        const FAILED_DATE = this.changeTimeZone(\n          dueDate?.failed_date_timestamp * 1000\n        );\n        return {\n          actionDate: this.datePipe.transform(FAILED_DATE, 'dd MMM yyyy'),\n          actionTime: this.datePipe.transform(FAILED_DATE, 'h:mm a'),\n        };\n      } else {\n        return {\n          actionDate: '',\n          actionTime: '',\n        };\n      }\n    };\n    const ACTION_DATE_INFO: any = GET_ACTION_DATE(dueDate);\n    const STATUS: any = GET_STATUS(dueDate);\n    return {\n      dueDate: dueDate?.report_due_date,\n      dueTime: dueDate?.report_due_time,\n      actionDate: ACTION_DATE_INFO?.actionDate,\n      actionTime: ACTION_DATE_INFO?.actionTime,\n      status: STATUS?.status,\n      statusClass: STATUS?.statusClass,\n      compliantStatus: dueDate?.compliance_status,\n      checkpoint_score: dueDate?.checkpoint_score,\n      submit_flag: dueDate?.submit_flag,\n      delayed_flag: dueDate?.delayed_flag,\n      Feedback_Enable: dueDate?.Feedback_Enable,\n      rating: dueDate?.rating,\n      Is_assignee_change: dueDate?.Is_assignee_change,\n      employee_name: dueDate?.employee_name,\n      assignee_change_date: dueDate?.assignee_change_date,\n      attachments: dueDate?.attachment,\n      _id: dueDate?.duedate_object_id,\n      review_status: dueDate?.review_status,\n      review_type: dueDate?.review_type,\n      review_result_data: dueDate?.review_result_data,\n      report_due_date_id: dueDate?.report_due_date_id,\n      questionnaire_type: dueDate?.questionnaire_type,\n      isAssessment: dueDate?.isAssessment,\n      Is_time_extension_done: dueDate?.Is_time_extension_done,\n      due_date_change_arr: dueDate?.due_date_change_arr,\n      accept_enable: dueDate?.accept_enable,\n      decline_enable: dueDate?.decline_enable,\n      more_details_enable: dueDate?.more_details_enable,\n      Mark_NotComplete_Enable: dueDate?.Mark_NotComplete_Enable,\n      needMoreTime_enable: dueDate?.needMoreTime_enable,\n      canNotComply_enable: dueDate?.canNotComply_enable,\n      redo_enable: dueDate?.redo_enable,\n      reject_enable: dueDate?.reject_enable,\n      condone_enable: dueDate?.condone_enable,\n      Failed_Mark_Complete_Enable: dueDate?.Failed_Mark_Complete_Enable,\n      insist_enable: dueDate?.insist_enable,\n      needMoreTimeAccept_enable: dueDate?.needMoreTimeAccept_enable,\n      needMoreTimeDecline_enable: dueDate?.needMoreTimeDecline_enable,\n      canNotComplyAccept_enable: dueDate?.canNotComplyAccept_enable,\n      canNotComplyDecline_enable: dueDate?.canNotComplyDecline_enable,\n      canNotComplyAcceptNewDate_enable:\n        dueDate?.canNotComplyAcceptNewDate_enable,\n      Reviewer_AddNewDueDate_enable: dueDate?.Reviewer_AddNewDueDate_enable,\n      reinitiate_flag: dueDate?.reinitiate_flag,\n      done_enable: dueDate?.done_enable,\n      ResumeProgressEnable: dueDate?.ResumeProgressEnable,\n      ViewProgressEnable: dueDate?.ViewProgressEnable,\n      viewProgressMode: dueDate?.viewProgressMode,\n      due_date_timestamp: dueDate?.due_date_timestamp,\n    };\n  }\n\n  private getReviewerResponse(dueDate: any) {\n    const GET_STATUS = (dueDate: any) => {\n      if (\n        dueDate?.delayed_flag &&\n        dueDate?.status.toLowerCase() !== 'partially completed'\n      ) {\n        return {\n          status: 'Delayed',\n          statusClass: 'partially-completed',\n        };\n      } else if (\n        dueDate?.submit_flag &&\n        dueDate?.status.toLowerCase() !== 'partially completed'\n      ) {\n        return {\n          status: 'Completed',\n          statusClass: 'success',\n        };\n      } else if (dueDate?.failed_flag) {\n        return {\n          status: 'Not Completed',\n          statusClass: 'failed',\n        };\n      } else if (dueDate.status.toLowerCase() == 'partially completed') {\n        return {\n          status: 'Partially Completed',\n          statusClass: 'partially-completed',\n        };\n      } else if (dueDate.action_status == 'close' && dueDate.status == '') {\n        return {\n          status: 'closed',\n          statusClass: '',\n        };\n      } else {\n        return {\n          status: '--',\n          complianceStatus: '',\n          statusClass: '',\n        };\n      }\n    };\n\n    const GET_ACTION_DATE = (dueDate: any) => {\n      if (dueDate?.submit_flag) {\n        const SUBMIT_DATE = this.changeTimeZone(\n          dueDate?.submit_date_timestamp * 1000\n        );\n        return {\n          actionDate: this.datePipe.transform(SUBMIT_DATE, 'dd MMM yyyy'),\n          actionTime: this.datePipe.transform(SUBMIT_DATE, 'h:mm a'),\n        };\n      } else if (dueDate?.failed_flag) {\n        const FAILED_DATE = this.changeTimeZone(\n          dueDate?.failed_date_timestamp * 1000\n        );\n        return {\n          actionDate: this.datePipe.transform(FAILED_DATE, 'dd MMM yyyy'),\n          actionTime: this.datePipe.transform(FAILED_DATE, 'h:mm a'),\n        };\n      } else {\n        return {\n          actionDate: '',\n          actionTime: '',\n        };\n      }\n    };\n    const ACTION_DATE_INFO: any = GET_ACTION_DATE(dueDate);\n    const STATUS: any = GET_STATUS(dueDate);\n    const DUE_DATE = this.changeTimeZone(dueDate?.due_date_timestamp * 1000);\n    return {\n      dueDate: this.datePipe.transform(DUE_DATE, 'dd MMM yyyy'),\n      dueTime: this.datePipe.transform(DUE_DATE, 'h:mm a'),\n      actionDate: ACTION_DATE_INFO?.actionDate,\n      actionTime: ACTION_DATE_INFO?.actionTime,\n      status: STATUS?.status,\n      statusClass: STATUS?.statusClass,\n      compliantStatus: '',\n      checkpoint_score: '',\n      submit_flag: dueDate?.submit_flag,\n      delayed_flag: dueDate?.delayed_flag,\n      attachments: dueDate?.attachment,\n      _id: dueDate?.duedate_object_id,\n      review_status: dueDate?.review_result,\n      review_type: dueDate?.review_type,\n      review_result_data: dueDate?.review_result_data,\n      report_due_date_id: dueDate?.report_due_date_id,\n      questionnaire_type: dueDate?.questionnaire_type,\n      Reviewer_Accept_Enable: dueDate?.Reviewer_Accept_Enable,\n      Reviewer_Decline_Enable: dueDate?.Reviewer_Decline_Enable,\n      Reviewer_MoreDetails_enable: dueDate?.Reviewer_MoreDetails_enable,\n      Reviewer_NeedMoreTime_Enable: dueDate?.Reviewer_NeedMoreTime_Enable,\n      Reviewer_CannotComply_Enable: dueDate?.Reviewer_CannotComply_Enable,\n      Reviewer_Insist_Enable: dueDate?.Reviewer_Insist_Enable,\n      Reviewer_ReviewNotRequired_Enable:\n        dueDate?.Reviewer_ReviewNotRequired_Enable,\n      Reviewer_MarkAsReviewed_Enable: dueDate?.Reviewer_MarkAsReviewed_Enable,\n      Reviewer_Done_Enable: dueDate?.Reviewer_Done_Enable,\n      due_date_timestamp: dueDate?.due_date_timestamp,\n      action_status: dueDate?.action_status,\n      reviewer_duedate_object_id: dueDate?.reviewer_duedate_object_id,\n    };\n  }\n\n  /**\n   * The function redirects the user to a compliance action page with specific URL parameters.\n   * @param {any} urlDetails - urlDetails is a rest parameter that allows the function to accept an\n   * indefinite number of arguments as an array. In this case, it is used to pass two specific values:\n   * urlDetails[0] represents the mode, urlDetails[1] represents the reportId.\n   */\n  goToActionPage(...urlDetails: any) {\n    window.location.href =\n      'https://' +\n      window?.location?.host +\n      '/action/compliance?mode=' +\n      urlDetails[0] +\n      '&reportId=' +\n      urlDetails[1] +\n      '&uId=' +\n      this.authorizer.getMemberId() +\n      (urlDetails[2] ? '&' + urlDetails[3] + '=' + urlDetails[2] : '');\n  }\n\n  showErrorSnackbar() {\n    this.snackBarService.show(\n      \"Oops! Something went wrong and we were unable to complete this action. Let's give it another try, shall we?\",\n      'alert'\n    );\n  }\n\n  getNotificationCount() {\n    return this.apiService\n      .get('compliance/?mode=complianceReport/TotalResponsibilityQueue')\n      .pipe(\n        map((res) => {\n          this.notificationQueue.next(<any>res);\n        }),\n        catchError((err) => {\n          return of(err);\n        })\n      );\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class BusinessCycleService {\n  public changeBusinessCycle$: BehaviorSubject<boolean> =\n    new BehaviorSubject<boolean>(false);\n\n  getBusinessCycle() {\n    let businessCycle = JSON.parse(\n      localStorage.getItem('businessCycle') ?? '{}'\n    );\n    let currentBusinessCycle = {\n      selected_cycle: businessCycle\n        ? businessCycle?.selectedCycle?.selected_cycle\n        : '',\n      start_date: businessCycle ? businessCycle?.selectedCycle?.start_date : '',\n      end_date: businessCycle ? businessCycle?.selectedCycle?.end_date : '',\n      selected_cycle_arr: businessCycle\n        ? businessCycle?.selectedCycle?.selected_cycle_arr\n        : [],\n      time_filter_type: '',\n    };\n    return currentBusinessCycle;\n  }\n}\n","import { Injectable, Optional } from '@angular/core';\nimport { Configurations } from '../../../configuration';\nimport { BehaviorSubject, finalize, map, of, retry, take } from 'rxjs';\nimport { ApiService } from './api.service';\nimport { AuthorizerService } from '@vcomply/authorizer';\nimport { DatePipe } from '@angular/common';\nimport { CommonService } from './common.service';\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\nimport { BusinessCycleService } from './business.service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class CommonApiService {\n  environment: any;\n  payload: any;\n  reviewerLoader: boolean = false;\n  private inFlightRequests = new Set<string>();\n  private lastLoaded = {\n    orgId: '',\n    responsibilityId: '',\n    dueDateReportId: '',\n    collaboratorReportId: '',\n    reviewerReportId: '',\n  };\n\n  orgDetails$: BehaviorSubject<any> = new BehaviorSubject({});\n  userDetails$: BehaviorSubject<any> = new BehaviorSubject({});\n  subscriptionDetails$: BehaviorSubject<any> = new BehaviorSubject({});\n  responsibilityDetails$: BehaviorSubject<any> = new BehaviorSubject({});\n  dueDateList$: BehaviorSubject<any> = new BehaviorSubject([]);\n  mentionedDate$: BehaviorSubject<any> = new BehaviorSubject([]);\n  collaboratorList$: BehaviorSubject<any> = new BehaviorSubject([]);\n  reviewerDueDateList$: BehaviorSubject<any> = new BehaviorSubject([]);\n  assigneeDueDateLoader: boolean = false;\n  reviewerDueDateLoader: boolean = false;\n  isLoading: boolean = false;\n\n  constructor(\n    private apiService: ApiService,\n    private authorizer: AuthorizerService,\n    private datePipe: DatePipe,\n    private commonService: CommonService,\n    private http: HttpClient,\n    private businessCycleService: BusinessCycleService,\n    @Optional() config?: Configurations\n  ) {\n    if (config) this.environment = config.envConfig;\n    this.getOrgDetails();\n  }\n\n  private startRequest(requestKey: string): boolean {\n    if (this.inFlightRequests.has(requestKey)) {\n      return false;\n    }\n\n    this.inFlightRequests.add(requestKey);\n    return true;\n  }\n\n  private finishRequest(requestKey: string): void {\n    this.inFlightRequests.delete(requestKey);\n  }\n\n  getOrgDetails(force: boolean = false) {\n    const organizationId = String(this.authorizer.getOrganizationId());\n    const requestKey = `orgDetails:${organizationId}`;\n\n    if (\n      !force &&\n      this.lastLoaded.orgId === organizationId &&\n      Object.keys(this.orgDetails$.value ?? {}).length\n    ) {\n      return;\n    }\n\n    if (!this.startRequest(requestKey)) {\n      return;\n    }\n\n    this.apiService\n      .get(\n        'organization/?mode=orgDetails&id=' +\n        organizationId\n      )\n      .pipe(\n        retry(2),\n        finalize(() => {\n          this.finishRequest(requestKey);\n        })\n      )\n      .subscribe({\n        next: (res: any) => {\n          this.lastLoaded.orgId = organizationId;\n          this.orgDetails$.next(res);\n        },\n        error: (error: Error) => {\n          console.error(error);\n          this.commonService.showErrorSnackbar();\n        },\n      });\n  }\n\n  /**\n   * This function retrieves responsibility details by sending a request to either the new or old API endpoint\n   * based on the useNewApi flag.\n   * @param {string} id - The report ID used to retrieve responsibility details.\n   */\n  getResponsibilityDetails(id: string, force: boolean = false) {\n    const requestKey = `reportDetails:${id}`;\n\n    if (\n      !force &&\n      this.lastLoaded.responsibilityId === id &&\n      Object.keys(this.responsibilityDetails$.value ?? {}).length\n    ) {\n      return;\n    }\n\n    if (!this.startRequest(requestKey)) {\n      return;\n    }\n\n    this.isLoading = true;\n    this.payload = this.businessCycleService.getBusinessCycle() as any;\n    this.payload.dashboard_id = '';\n\n    this.apiService\n      .post(`compliance_post/?mode=reportDetails&id=${id}`, this.payload)\n      .pipe(\n        map((details: any) => {\n          const mentionedUsers = Array.isArray(details?.all_mentioned_user)\n            ? details.all_mentioned_user\n            : [];\n\n          details.all_mentioned_user = mentionedUsers.map((user: any) => {\n            user['id'] = user?.member_id;\n            user['name'] = user?.member_name;\n            return user;\n          });\n\n          return details;\n        }),\n        retry(2),\n        finalize(() => {\n          this.isLoading = false;\n          this.finishRequest(requestKey);\n        })\n      )\n      .subscribe({\n        next: (res: any) => {\n          if (res?.report_format) {\n            res['report_format'] = res['report_format'].map((format: any, index: number) => {\n              return {\n                ...format,\n                attachment_id: (index + 1).toString()\n              };\n            });\n          }\n          this.lastLoaded.responsibilityId = id;\n          this.responsibilityDetails$.next(res);\n        },\n        error: (error: Error) => {\n          console.error(error);\n          this.commonService.showErrorSnackbar();\n        },\n      });\n  }\n\n  /**\n   * This function retrieves a list of due dates for a compliance report using an API call and updates\n   * two observable variables with the response.\n   * @param {string} id - The `id` parameter is a string representing the report ID that is used to\n   * fetch the due date list for compliance.\n   */\n  getDueDateList(id: string, force: boolean = false) {\n    const requestKey = `dueDateList:${id}`;\n\n    if (\n      !force &&\n      this.lastLoaded.dueDateReportId === id &&\n      this.dueDateList$.value?.length\n    ) {\n      return;\n    }\n\n    if (!this.startRequest(requestKey)) {\n      return;\n    }\n\n    this.assigneeDueDateLoader = true;\n\n    const URL: string =\n      'compliance_post/?mode=complianceDueDate&reportId=' + id;\n    this.apiService\n      .post(URL, this.payload)\n      .pipe(\n        retry(2),\n        finalize(() => {\n          this.assigneeDueDateLoader = false;\n          this.finishRequest(requestKey);\n        })\n      )\n      .subscribe({\n        next: (res: any) => {\n          this.lastLoaded.dueDateReportId = id;\n          this.dueDateList$.next(res);\n          const mentionDates = res.map((dueDates: any) => {\n            return this.datePipe.transform(\n              this.commonService.changeTimeZone(\n                dueDates.due_date_timestamp * 1000\n              ),\n              'dd MMM yyyy'\n            );\n          });\n          this.mentionedDate$.next(mentionDates);\n        },\n        error: (error: Error) => {\n          console.error(error);\n          this.commonService.showErrorSnackbar();\n        },\n      });\n  }\n\n  getCollaboratorList(_id: string, force: boolean = false) {\n    const requestKey = `collaborators:${_id}`;\n\n    if (\n      !force &&\n      this.lastLoaded.collaboratorReportId === _id &&\n      this.collaboratorList$.value?.length\n    ) {\n      return;\n    }\n\n    if (!this.startRequest(requestKey)) {\n      return;\n    }\n\n    const URL: string = `compliance/?mode=workroomParticipants&reportId=${_id}`;\n    this.apiService\n      .get(URL)\n      .pipe(\n        take(1),\n        finalize(() => {\n          this.finishRequest(requestKey);\n        })\n      )\n      .subscribe({\n        next: (collaborator: any) => {\n          this.lastLoaded.collaboratorReportId = _id;\n          this.collaboratorList$.next(collaborator);\n        },\n        error: (error: any) => {\n          of(error);\n          console.error(error);\n          this.commonService.showErrorSnackbar();\n        },\n      });\n  }\n\n  getReviewerList(_id: string, force: boolean = false) {\n    const requestKey = `reviewers:${_id}`;\n\n    if (\n      !force &&\n      this.lastLoaded.reviewerReportId === _id &&\n      this.reviewerDueDateList$.value?.length\n    ) {\n      return;\n    }\n\n    if (!this.startRequest(requestKey)) {\n      return;\n    }\n\n    this.reviewerLoader = true;\n    const URL: string = `compliance_post/?mode=reviewer/ReviewerDuedateList&reportId=${_id}`;\n    this.apiService\n      .post(URL, this.payload)\n      .pipe(\n        take(1),\n        finalize(() => {\n          this.reviewerLoader = false;\n          this.finishRequest(requestKey);\n        })\n      )\n      .subscribe({\n        next: (dueDateList: any) => {\n          this.lastLoaded.reviewerReportId = _id;\n          this.reviewerDueDateList$.next(dueDateList);\n        },\n        error: (error: any) => {\n          of(error);\n          console.error(error);\n          this.commonService.showErrorSnackbar();\n        },\n      });\n  }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { SnackBarService } from '../snack-bar.service';\n\n@Component({\n    selector: 'app-snack-bar',\n    templateUrl: './snack-bar.component.html',\n    styleUrls: ['./snack-bar.component.less'],\n    standalone: false\n})\nexport class SnackBarComponent implements OnInit {\n  show = false;\n  message: string = '--';\n  icon: string = '&#xe914;';\n  type='alert'\n  icons:any = {\n    success:'&#xe93d;',\n    warning:'&#xe914;',\n    info:'&#xe932;',\n    alert:'&#xe914;',\n    error:'&#xeaae;'\n  }\n  snackbarSubscription!: Subscription;\n  constructor(private snackbarService: SnackBarService) {}\n\n  ngOnInit(): void {\n    this.snackbarSubscription = this.snackbarService.snackbarState.subscribe((state) => {\n\n      if(state.icon && Object.keys(this.icons).includes(state?.icon)){\n        this.icon = this.icons[state.icon];\n        this.type = state?.icon;\n      }\n      this.message = state.message;\n      this.show = state.show;\n      setTimeout(() => {\n        this.show = false;\n      }, 3000);\n    });\n  }\n  close() {\n    this.show = false;\n  }\n}\n","<div class=\"snackbar\" *ngIf=\"show\">\n  <div class=\"snackbar-inner\">\n    <div class=\"snackbarText\">\n      <!-- &#xe914; -->\n      <i class=\"icons\" [class]=\"type\" [innerHTML]=\"icon\"></i> {{ message }}\n    </div>\n    <button (click)=\"close()\">[ <span>Close</span> ]</button>\n  </div>\n</div>\n","export const IFRAME_TYPE = {\n    WFE: 'wfe',\n}","export const WFE_IFRAME = 'wvData';","export const APP_URL = {\n  WORKFLOW_TYPE: `workflowType`,\n  MODE: `mode`,\n};\n\nexport const WORKFLOW_TYPE = {\n  CAR: 'CAR',\n  LAI: 'LAI',\n};\n\nexport const MODE = {\n  EDIT: 'EDIT',\n  CREATE: 'CREATE',\n};\n\nexport const WFE_IFRAME_URL = `/web-view/?c=wfe`\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class SessionStorageService {\n  /**\n   * Sets metadata in session storage\n   * @param metadata - Object containing metadata to store\n   */\n  setMetadata(metadata: Record<string, any>, key: string): void {\n    try {\n      const serializedData = JSON.stringify(metadata);\n      sessionStorage.setItem(key, serializedData);\n    } catch (error) {\n      console.error('Error setting metadata in session storage:', error);\n    }\n  }\n\n  /**\n   * Gets metadata from session storage\n   * @returns Parsed metadata object or null if not found\n   */\n  getMetadata(key: string): Record<string, any> | null {\n    try {\n      const data = sessionStorage.getItem(key);\n      return data ? JSON.parse(data) : null;\n    } catch (error) {\n      console.error('Error getting metadata from session storage:', error);\n      return null;\n    }\n  }\n\n  /**\n   * Removes metadata from session storage\n   */\n  clearMetadata(key: string): void {\n    try {\n      sessionStorage.removeItem(key);\n    } catch (error) {\n      console.error('Error clearing metadata from session storage:', error);\n    }\n  }\n\n  /**\n   * Updates specific fields in the metadata\n   * @param updates - aPartial metadata object containing fields to update\n   */\n  updateMetadata(updates: Partial<Record<string, any>>, key: string): void {\n    try {\n      const currentMetadata = this.getMetadata(key) || {};\n      const updatedMetadata = { ...currentMetadata, ...updates };\n      this.setMetadata(updatedMetadata, key);\n    } catch (error) {\n      console.error('Error updating metadata in session storage:', error);\n    }\n  }\n}\n","\nimport { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { WFE_IFRAME } from '../shared/constants/session-storage.constants';\n\nimport { SessionStorageService } from '../shared/services/session-storage.service';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class WorkflowService {\n  modulePermissions !: any;\n  featureFlagService !:any\n\n  private refreshSubject = new Subject<boolean>();\n  public isWorkflowOpenedSubject = new Subject<boolean>();\n\n  constructor(private sessionStorage: SessionStorageService ) {\n   }\n\n  public workFlowConfig: any = {\n      workflowType: 'CAR',\n      mode: 'CREATE',\n      allowedWorkflows: [],\n      id: '',\n      isWorkflowOpened: false,\n      frameworkDetails: [],\n      responsibilityData: {\n        responsibilityId: '',\n        responsibilityName: '',\n        rcId: null,\n        responsibilityObjectId: '',\n        responsibiltyId: '',\n        responsibiltyName: '',\n      },\n      openedFrom: 'GLOBAL',\n      entrustButtonName: 'Entrust',\n    };\n\n  openWorkflow(mode: string, workFlowType: string, openedFrom: string, id: string = '', featureFlag?: any,secondaryPortal ='NonOther',permission: any = this.workFlowConfig.allowedWorkflows){\n    this.workFlowConfig.mode = mode;\n    if (workFlowType && workFlowType?.length > 0) {\n      this.workFlowConfig.workflowType = workFlowType;\n    }\n    this.workFlowConfig.openedFrom = openedFrom;\n    this.workFlowConfig.id = id;\n    this.workFlowConfig.allowedWorkflows = permission;\n    this.workFlowConfig.secondaryPortal = secondaryPortal;\n    this.setWFESessionStorage();\n\n    return this.refreshSubject.asObservable();\n  }\n\n  // set the WFE data in session Storage\n  setWFESessionStorage() {\n    this.sessionStorage.setMetadata(this.createSessionData(), WFE_IFRAME);\n    this.isWorkflowOpenedSubject.next(true);\n    this.refreshSubject.next(true);\n  }\n\n  createSessionData() {\n    return {\n      wfe: {\n        workflowType: this.workFlowConfig.workflowType,\n        mode: this.workFlowConfig.mode,\n        allowedWorkflows: this.workFlowConfig.allowedWorkflows,\n        feature: this.workFlowConfig.feature,\n        id: this.workFlowConfig.id,\n        reponsibilityData: this.workFlowConfig.responsibilityData,\n        openedFrom: this.workFlowConfig.openedFrom,\n        secondaryPortal: this.workFlowConfig.secondaryPortal,\n      },\n    };\n  }\n\n\n  setAuthorization(UserInfo:any) {\n   const tracker = [];\n   let data = UserInfo;\n     const permissions = JSON.parse(data?.permission); // will be used for policy surevy and form\n\n     if (data && data?.quick_link?.risk){\n      this.workFlowConfig.allowedWorkflows.push('RISK');\n      if(permissions.MRISK === 1){\n        this.workFlowConfig.allowedWorkflows.push('MULTIPLE_RISK');\n      }\n\n      if (tracker.length === 0){ this.workFlowConfig.workflowType = 'AAR'; tracker.push('AAR'); }\n     }\n     if (data?.quick_link?.entrust){\n      this.workFlowConfig.allowedWorkflows.push('RESPONSIBILITY');\n      this.workFlowConfig.allowedWorkflows.push('MULTIPLE_RESPONSIBILITY');\n      if (tracker.length === 0){  this.workFlowConfig.workflowType = 'CAR'; tracker.push('CAR'); }\n    }\n\n    if (data?.quick_link?.assessment){\n      this.workFlowConfig.allowedWorkflows.push('ASSESSMENT');\n      if (tracker.length === 0){  this.workFlowConfig.workflowType = 'AAA'; tracker.push('AAA'); }\n    }\n     if (data && data?.quick_link?.policy) {\n      this.workFlowConfig.allowedWorkflows.push('POLICY');\n      if (tracker.length === 0){  this.workFlowConfig.workflowType = 'CAP'; tracker.push('CAP'); }\n    }\n     if (data && data?.quick_link?.incident){\n      this.workFlowConfig.allowedWorkflows.push('ISSUE');\n      if (tracker.length === 0){ this.workFlowConfig.workflowType = 'LAI'; tracker.push('LAI'); }\n    }\n    if (data?.quick_link?.program){\n      this.workFlowConfig.allowedWorkflows.push('PROGRAM');\n    }\n  }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { DomSanitizer, SafeResourceUrl } from \"@angular/platform-browser\";\n\n@Pipe({\n    name: 'safeHTML',\n    standalone: false\n})\nexport class safeHTMLPipe implements PipeTransform {\n  constructor(private domSanitizer: DomSanitizer) {}\n\n  transform(url: string | null | undefined): SafeResourceUrl {\n    const raw = (url ?? \"\").trim();\n    if (!raw) {\n      return this.domSanitizer.bypassSecurityTrustResourceUrl(\"about:blank\");\n    }\n\n    let resolved: URL;\n    try {\n      resolved = new URL(raw, window.location.origin);\n    } catch {\n      return this.domSanitizer.bypassSecurityTrustResourceUrl(\"about:blank\");\n    }\n\n    // allowlist: only same-origin URLs (including relative URLs)\n    if (resolved.origin !== window.location.origin) {\n      return this.domSanitizer.bypassSecurityTrustResourceUrl(\"about:blank\");\n    }\n\n    return this.domSanitizer.bypassSecurityTrustResourceUrl(resolved.toString());\n  }\n}","import {\n    AfterViewInit,\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    OnInit,\n    Output,\n    ViewChild,\n  } from '@angular/core';\n  \n  @Component({\n    selector: 'app-iframe',\n    template: `\n      <iframe\n        #iframeElement\n        [className]=\"type\"\n        [name]=\"type\"\n        [src]=\"src | safeHTML\"\n      ></iframe>\n    `,\n    styleUrls: ['./app-iframe.component.less'],\n    standalone: false\n})\n  export class AppIframeComponent implements OnInit, AfterViewInit {\n    @Input() src: string = '';\n    @Input() type: string = '';\n  \n    @Output() closeIframe = new EventEmitter<any>();\n    @Output() onIframeLoaded = new EventEmitter<void>();\n  \n    @ViewChild('iframeElement', { static: false }) iframe!: ElementRef;\n  \n    ngOnInit() {\n      window.addEventListener('message', this.handleMessage, false);\n    }\n  \n    ngAfterViewInit() {\n      if (this.iframe?.nativeElement) {\n        this.iframe.nativeElement.addEventListener('load', () => {\n          this.onIframeLoaded.emit();\n        });\n      }\n    }\n  \n    private handleMessage = (event: MessageEvent) => {\n      const targetOrigin = window.location.origin;\n      if (event.origin !== targetOrigin) {\n        return;\n      }\n  \n      this.closeIframe.emit(event?.data?.event);\n    };\n  }\n  ","import { Component, HostListener, OnDestroy, OnInit } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { IFRAME_TYPE } from '../../shared/constants/iframe.constants';\nimport { WFE_IFRAME } from '../../shared/constants/session-storage.constants';\n\nimport { SessionStorageService } from '../../shared/services/session-storage.service';\nimport { WorkflowService } from '../workflow.service';\nimport { WFE_IFRAME_URL } from '../../shared/constants/app-url.constants';\n\n@Component({\n    selector: 'app-workflow',\n    templateUrl: './workflow.component.html',\n    styleUrls: ['./workflow.component.less'],\n    standalone: false\n})\nexport class WorkflowComponent implements OnInit, OnDestroy {\n  iframeSource: string = '';\n  wfeIframe: string = IFRAME_TYPE.WFE;\n  iframeLoading: boolean = true;\n\n  workflowSubscription!: Subscription;\n  isWorkflowOpened: boolean = false;\n\n  constructor(\n    private sessionStorage: SessionStorageService,\n    private workflowService: WorkflowService\n  ) {\n    this.handleWorkflowSubscription();\n  }\n\n  ngOnInit() {\n    this.setIframeSource();\n  }\n\n  ngOnDestroy() {\n    this.workflowSubscription.unsubscribe();\n  }\n\n  handleWorkflowSubscription() {\n    this.workflowSubscription =\n      this.workflowService.isWorkflowOpenedSubject.subscribe(\n        (isWorkflowOpened: boolean) => {\n          this.isWorkflowOpened = isWorkflowOpened;\n          this.iframeLoading = isWorkflowOpened;\n        }\n      );\n  }\n\n  setIframeSource() {\n    this.iframeSource = window.location.origin + WFE_IFRAME_URL;\n  }\n\n  closeWorkflow(_: boolean) {\n    this.workflowService.isWorkflowOpenedSubject.next(false);\n    this.sessionStorage.clearMetadata(WFE_IFRAME);\n    this.isWorkflowOpened = false;\n    this.iframeLoading = true;\n  }\n\n  handleCloseIframe(event: any) {\n    if (event === 'closeWebview') {\n      this.closeWorkflow(true);\n    }\n  }\n\n  handleIframeLoaded() {\n    this.iframeLoading = false;\n  }\n\n  // handle the confirmation alert from Parent component\n  @HostListener('window:beforeunload', ['$event'])\n  unloadNotification($event: any) {\n    const token = localStorage.getItem('currentUser');\n    if (this.isWorkflowOpened && token) {\n      $event.returnValue = true;\n    }\n  }\n}\n","<app-iframe\n  *ngIf=\"isWorkflowOpened\"\n  [hidden]=\"iframeLoading\"\n  id=\"wfeIframe\"\n  [src]=\"iframeSource\"\n  [type]=\"wfeIframe\"\n  (closeIframe)=\"handleCloseIframe($event)\"\n  (onIframeLoaded)=\"handleIframeLoaded()\"\n>\n</app-iframe>","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class PopoverService {\n  positionX!: number;\n  positionY!: number;\n  popoverHeight: any;\n  popoverWidth: any;\n  elementPosition: any;\n  elementDirection: any;\n  constructor() {\n  }\n}\n","import { Component, ElementRef, Input, ViewChild, EventEmitter, Output } from '@angular/core';\nimport { PopoverService } from './popover.service';\n\n@Component({\n    selector: 'app-popover',\n    templateUrl: './popover.component.html',\n    styleUrls: ['./popover.component.less'],\n    standalone: false\n})\nexport class PopoverComponent {\n  @Input() dontCloseonClick!: boolean;\n  popoverContainer = false;\n  @ViewChild('popoverRatio') popoverRatio!: ElementRef;\n  @ViewChild('popoverContent') popoverContent!: ElementRef;\n  @Output() closedOnOverlay = new EventEmitter();\n  constructor(public popoverService: PopoverService) {}\n  showPopover = false;\n  leftValue: any;\n  topValue: any;\n  popoverHeight: any;\n  popoverWidth: any;\n  positionX!: number;\n  positionY!: number;\n  popover() {\n    this.popoverContainer = false;\n    this.popoverContainer = true;\n    setTimeout(() => {\n      this.getPosition();\n      this.showPopover = true;\n    }, 10);\n    return false;\n  }\n  popoverEvent() {\n    this.popoverContainer = false;\n    this.popoverContainer = true;\n    setTimeout(() => {\n      this.positionX = this.popoverService.positionX;\n      this.positionY = this.popoverService.positionY;\n      this.showPopover = true;\n    }, 10);\n    return false;\n  }\n  closePopover(top?: string) {\n    if (!this.dontCloseonClick || top === 'top') {\n      this.popoverContainer = false;\n      this.showPopover = false;\n    }\n  }\n\n  close(){\n    this.popoverContainer = false;\n    this.showPopover = false;\n  }\n  clickedPopover() {\n    this.getPosition();\n  }\n  getPosition() {\n    const elementPositionn = this.popoverService.elementPosition;\n    this.popoverHeight = this.popoverRatio?.nativeElement.offsetHeight;\n    this.popoverWidth = this.popoverRatio?.nativeElement.offsetWidth;\n    if (this.popoverService.elementDirection === 'left') {\n      this.leftValue = elementPositionn.left;\n      if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {\n        this.topValue = elementPositionn.top - this.popoverHeight;\n      } else {\n        this.topValue = elementPositionn.top + elementPositionn.height;\n      }\n    }\n    if (this.popoverService.elementDirection === 'right') {\n      this.leftValue = elementPositionn.left + elementPositionn.width - this.popoverWidth;\n      if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {\n        this.topValue = elementPositionn.top - this.popoverHeight;\n      } else {\n        this.topValue = elementPositionn.top + elementPositionn.height;\n      }\n    }\n    if (this.popoverService.elementDirection === 'top') {\n      this.leftValue = elementPositionn.left + elementPositionn.width;\n      this.topValue = elementPositionn.top - this.popoverHeight;\n    }\n    if (this.popoverService.elementDirection === 'bottom') {\n      this.leftValue = elementPositionn.left + elementPositionn.width;\n      if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {\n        this.topValue = elementPositionn.top - this.popoverHeight;\n      } else {\n        this.topValue = elementPositionn.top + elementPositionn.height;\n      }\n    }\n    if (this.popoverService.elementDirection === 'self-position') {\n      this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverWidth / 2;\n      this.topValue = elementPositionn.top - 15;\n    }\n    if (this.popoverService.elementDirection === 'top-center') {\n      this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverWidth / 2;\n      if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight) {\n        this.topValue = elementPositionn.top + elementPositionn.height;\n      } else {\n        this.topValue = elementPositionn.top - this.popoverHeight;\n      }\n    }\n    if (this.popoverService.elementDirection === 'center') {\n      this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverWidth / 2;\n      this.topValue = elementPositionn.top + elementPositionn.height;\n    }\n    this.positionX = this.leftValue;\n    this.positionY = this.topValue;\n  }\n}\n","<div class=\"responsibility-overlay\" *ngIf=\"popoverContainer\" (click)=\"closePopover('top');this.closedOnOverlay.emit();\"></div>\n<div class=\"action\" [class.active]=\"showPopover\" *ngIf=\"popoverContainer\" [style.top.px]=\"positionY\" [style.left.px]=\"positionX\" #popoverRatio id=\"popoverRatio\">\n  <div (click)=\"closePopover(); clickedPopover()\" #popoverContent>\n    <ng-content></ng-content>\n  </div>\n</div>\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\nimport { PopoverService } from './popover.service';\n\n@Directive({\n    selector: '[appPopover]',\n    standalone: false\n})\nexport class PopoverDirective {\n  dynamicComponent: any;\n  @Input() refrence: any;\n  @Input() placement!: string;\n  leftValue: any;\n  topValue: any;\n  constructor(private elRef: ElementRef, private popoverService: PopoverService) {}\n  @HostListener('click') click() {\n    this.popoverService.elementPosition = this.elRef.nativeElement.getBoundingClientRect();\n    this.popoverService.elementDirection = this.placement;\n  }\n\n  getPosition() {\n    setTimeout(() => {\n      const elementPositionn = this.elRef.nativeElement.getBoundingClientRect();\n      if (this.placement === 'left') {\n        this.leftValue = elementPositionn.left;\n        if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {\n          this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\n        } else {\n          this.topValue = elementPositionn.top + elementPositionn.height;\n        }\n      }\n      if (this.placement === 'right') {\n        this.leftValue = elementPositionn.left + elementPositionn.width - this.popoverService.popoverWidth;\n        if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {\n          this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\n        } else {\n          this.topValue = elementPositionn.top + elementPositionn.height;\n        }\n      }\n      if (this.placement === 'top') {\n        this.leftValue = elementPositionn.left + elementPositionn.width;\n        this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\n      }\n      if (this.placement === 'bottom') {\n        this.leftValue = elementPositionn.left + elementPositionn.width;\n        if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {\n          this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\n        } else {\n          this.topValue = elementPositionn.top + elementPositionn.height;\n        }\n      }\n      if (this.placement === 'self-position') {\n        this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverService.popoverWidth / 2;\n        this.topValue = elementPositionn.top - 15;\n      }\n      if (this.placement === 'top-center') {\n        this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverService.popoverWidth / 2;\n        this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\n      }\n      this.popoverService.positionX = this.leftValue;\n      this.popoverService.positionY = this.topValue;\n    }, 10);\n  }\n}\n","import {\n  Directive,\n  Input,\n  ElementRef,\n  HostListener,\n  Renderer2,\n} from '@angular/core';\n\n@Directive({\n    selector: '[appTooltip]',\n    standalone: false\n})\nexport class ToolTipDirective {\n  @Input('appTooltip') tooltipTitle!: string;\n  @Input() placement!: string;\n  @Input() type: any;\n  @Input() tooltipMandatory!: boolean;\n  @Input() showTooltip = true;\n  @Input() animate!: boolean;\n  tooltip!: HTMLElement;\n  offset = 8;\n\n  constructor(private el: ElementRef, private renderer: Renderer2) {}\n  @HostListener('mouseenter') onMouseEnter() {\n    this.hide();\n    this.show();\n  }\n  @HostListener('mouseover') onMouseOver() {\n    this.hide();\n    this.show();\n  }\n\n  @HostListener('mouseleave') onMouseLeave() {\n    this.hide();\n  }\n  @HostListener('mouseout') onMouseOut() {\n    this.hide();\n  }\n  @HostListener('click') onClick() {\n    this.hide();\n  }\n  show() {\n    if (!this.showTooltip) {\n      return;\n    }\n    this.create();\n    const element = this.el.nativeElement;\n    if (this.tooltipMandatory === true) {\n      this.setPosition();\n      this.renderer.addClass(this.tooltip, 'rqv-tooltip-show');\n    } else {\n      if (\n        element.scrollWidth * element.scrollHeight >\n        element.offsetWidth * element.offsetHeight\n      ) {\n        this.setPosition();\n        this.renderer.addClass(this.tooltip, 'rqv-tooltip-show');\n      }\n    }\n  }\n\n  hide() {\n    if (document.body.contains(this.tooltip)) {\n      if (this.renderer) {\n        this.renderer.removeChild(\n          document.body,\n          document.getElementById('tooltip')\n        );\n      }\n    }\n  }\n\n  create() {\n    this.tooltip = this.renderer.createElement('span');\n    this.tooltip.setAttribute('id', 'tooltip');\n    this.tooltip.innerHTML = this.tooltipTitle;\n    this.renderer.appendChild(document.body, this.tooltip);\n    this.renderer.addClass(this.tooltip, 'rqv-tooltip');\n    this.renderer.addClass(this.tooltip, `rqv-tooltip-${this.placement}`);\n    this.renderer.addClass(this.tooltip, `${this.type}`);\n    if (this.animate) {\n      this.renderer.addClass(this.tooltip, `animate-${this.placement}`);\n    }\n  }\n\n  setPosition() {\n    const hostPos = this.el.nativeElement.getBoundingClientRect();\n    const tooltipPos = this.tooltip.getBoundingClientRect();\n    const scrollPos =\n      window.pageYOffset ||\n      document.documentElement.scrollTop ||\n      document.body.scrollTop ||\n      0;\n    const w = window.innerWidth;\n    const h = window.innerHeight;\n    let top;\n    let left;\n    if (this.placement === 'top') {\n      top = hostPos.top - tooltipPos.height - this.offset;\n      left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\n    }\n\n    if (this.placement === 'bottom') {\n      if (hostPos.top + tooltipPos.height > h) {\n        top = hostPos.top - tooltipPos.height;\n        left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\n        this.renderer.removeClass(this.tooltip, `rqv-tooltip-bottom`);\n        this.renderer.addClass(this.tooltip, `rqv-tooltip-top`);\n      } else {\n        top = hostPos.bottom + this.offset;\n        left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\n      }\n    }\n\n    if (this.placement === 'left') {\n      top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\n      left = hostPos.left - tooltipPos.width - this.offset;\n    }\n\n    if (this.placement === 'right') {\n      top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\n      left = hostPos.right + this.offset;\n    }\n    if (this.placement === 'bottom-right') {\n      top = hostPos.bottom + this.offset;\n      left = hostPos.left - (tooltipPos.width - 28);\n    }\n    if (this.placement === 'bottom-left') {\n      if (hostPos.top + tooltipPos.height > h - 30) {\n        top = hostPos.top - tooltipPos.height;\n        left = hostPos.left;\n        this.renderer.removeClass(this.tooltip, `rqv-tooltip-bottom-left`);\n        this.renderer.addClass(this.tooltip, `rqv-tooltip-top-left`);\n      } else {\n        top = hostPos.bottom + this.offset;\n        left = hostPos.left;\n      }\n    }\n    this.renderer.setStyle(this.tooltip, 'top', `${top + scrollPos}px`);\n    this.renderer.setStyle(this.tooltip, 'left', `${left}px`);\n  }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n    selector: 'add-past-event',\n    templateUrl: './add-past-event.component.html',\n    styleUrls: ['./add-past-event.component.less'],\n    standalone: false\n})\nexport class AddPastEventComponent implements OnInit {\n  animation = false;\n\n  constructor() { }\n\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n  }\n\n  description: any = {\n    mode: 'prime',\n    placeholder: 'Add a note',\n    link: true,\n  };\n\n}\n","<div class=\"form-dialog vx-d-flex vx-align-center vx-justify-center\" [class.animate]=\"animation\">\n    <div class=\"form-dialog-container\">\n        <div class=\"form-dialog-head vx-d-flex vx-align-center vx-justify-between vx-pl-5 vx-pr-5 vx-mb-5\">\n            <div class=\"vx-fs-14 vx-label-txt\">Add a Past Event</div>\n            <button class=\"close-btn vx-fs-14 vx-p-0 vx-m-0 vx-d-flex\"><i class=\"icons\">&#xe9ae;</i></button>\n        </div>\n        <div class=\"form-dialog-body\">\n            <div class=\"form-group vx-mb-5\">\n                <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">Event Date</div>\n                <input type=\"text\" placeholder=\"Select date\">\n            </div>\n            <div class=\"form-group vx-mb-5\">\n                <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">Event Status</div>\n                <div appPopover (click)=\"eventStatus.popover()\" placement=\"left\" class=\"select-box vx-fs-13 vx-paragraph-txt vx-p-2 vx-d-flex vx-align-center vx-justify-between\">\n                    <div class=\"value vx-pr-2\">Select status</div>\n                    <i class=\"icons\">&#xe9e8;</i>\n                </div>\n                <app-popover #eventStatus [dontCloseonClick]=\"true\">\n                    <div class=\"action-list\">\n                      <ul class=\"action-item\">\n                        <li class=\"search-field\">\n                            <input type=\"text\" placeholder=\"Search...\" class=\"search\">\n                        </li>\n                        <li><button>Completed</button></li>\n                        <li><button>Delayed</button></li>\n                        <li><button>Not Completed</button></li>\n                      </ul>\n                    </div>\n                </app-popover>\n            </div>\n            <div class=\"form-group vx-mb-5\">\n                <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">Notes</div>\n                <vcomply-editor [editorConfig]=\"description\"></vcomply-editor>\n            </div>\n            <div class=\"form-group vx-mb-5\">\n                <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">Upload File</div>\n                <div class=\"file-field vx-p-5 vx-mb-5\">\n                    <div class=\"vx-d-flex vx-align-center\">\n                        <div class=\"drop-file vx-fs-16 vx-paragraph-txt vx-tt-uppercase vx-text-center\">Drop Files Here</div>\n                        <div class=\"action-area vx-d-flex vx-align-center vx-justify-between\">\n                            <div class=\"or-div vx-fs-10 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center\">OR</div>\n                            <label class=\"browse-btn vx-fs-12 vx-txt-white vx-tt-uppercase vx-pl-5 vx-pr-5 vx-d-inline-block\">\n                                <input type=\"file\">\n                                <i class=\"icons vx-mr-1\">&#xeade;</i> Browse File\n                            </label>\n                        </div>\n                        <div class=\"drag-hover\" [class.active]=\"false\">\n                            <input type=\"file\">\n                        </div>\n                    </div>\n                    <ng-container>\n                        <div *ngFor=\"let data of [1, 1]\" class=\"file-item vx-d-flex vx-align-center vx-w-100 vx-pb-2 vx-mb-2\">\n                            <span class=\"file table pdf\">\n                                <i class=\"icons\">&#xe92e;</i>\n                                <div class=\"format\">pdf</div>\n                            </span>\n                            <div class=\"file-name vx-fs-11 vx-label-txt vx-pr-2\" [appTooltip]=\"'file-name.pdf'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">file-name.pdf</div>\n                            <button class=\"delete-btn vx-fs-16 vx-txt-red vx-p-0 vx-m-0\">\n                                <i class=\"icons\">&#xe923;</i>\n                            </button>\n                        </div>\n                        <div class=\"upload-area vx-pt-5 vx-pb-2 vx-text-center\">\n                            <label class=\"vx-fs-12 vx-label-txt\" for=\"add-past-event-upload-more\">\n                                Do you want insert more files? <span class=\"vx-tt-uppercase\">Drop Files Here</span> / <span class=\"vx-txt-blue vx-tt-uppercase vx-ml-1\">Browse</span>\n                            </label>\n                            <input id=\"add-past-event-upload-more\" type=\"file\">\n                        </div>\n                    </ng-container>\n                </div>\n            </div>\n        </div>\n        <div class=\"form-dialog-footer vx-d-flex vx-align-center vx-justify-end vx-pl-4 vx-pr-4 vx-mt-5\">\n            <button class=\"save-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\">Save</button>\n        </div>\n    </div>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n    selector: 'edit-due-date',\n    templateUrl: './edit-due-date.component.html',\n    styleUrls: ['./edit-due-date.component.less'],\n    standalone: false\n})\nexport class EditDueDateComponent implements OnInit {\n  animation = false;\n\n  constructor() { }\n\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n  }\n\n  description: any = {\n    mode: 'prime',\n    placeholder: 'Add a note',\n    link: true,\n  };\n\n}\n","<div class=\"form-dialog vx-d-flex vx-align-center vx-justify-center\" [class.animate]=\"animation\">\n    <div class=\"form-dialog-container\">\n        <div class=\"form-dialog-head vx-d-flex vx-align-center vx-justify-between vx-pl-5 vx-pr-5 vx-mb-5\">\n            <div class=\"vx-fs-14 vx-label-txt\">Edit a Due Date</div>\n            <button class=\"close-btn vx-fs-14 vx-p-0 vx-m-0 vx-d-flex\"><i class=\"icons\">&#xe9ae;</i></button>\n        </div>\n        <div class=\"form-dialog-body\">\n            <div class=\"form-group vx-mb-5\">\n                <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">Due Date</div>\n                <div appPopover (click)=\"dueDate.popover()\" placement=\"left\" class=\"select-box vx-fs-13 vx-paragraph-txt vx-p-2 vx-d-flex vx-align-center vx-justify-between\">\n                    <div class=\"value vx-pr-2\">Select date</div>\n                    <i class=\"icons\">&#xe9e8;</i>\n                </div>\n                <app-popover #dueDate [dontCloseonClick]=\"true\">\n                    <div class=\"action-list\">\n                      <ul class=\"action-item\">\n                          <li class=\"search-field\">\n                              <input type=\"text\" placeholder=\"Search...\" class=\"search\">\n                          </li>\n                        <li *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\"><button>10 Feb 2023</button></li>\n                      </ul>\n                    </div>\n                </app-popover>\n            </div>\n            <div class=\"form-group vx-mb-5\">\n                <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">Select an Upcoming due date to modify</div>\n                <input type=\"text\" placeholder=\"Select date\">\n            </div>\n            <div class=\"form-group vx-mb-5\">\n                <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">Notes</div>\n                <vcomply-editor [editorConfig]=\"description\"></vcomply-editor>\n            </div>\n        </div>\n        <div class=\"form-dialog-footer vx-d-flex vx-align-center vx-justify-end vx-pl-4 vx-pr-4 vx-mt-5\">\n            <button class=\"save-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\">Save</button>\n        </div>\n    </div>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n    selector: 'pause',\n    templateUrl: './pause.component.html',\n    styleUrls: ['./pause.component.less'],\n    standalone: false\n})\nexport class PauseComponent implements OnInit {\n  animation = false;\n\n  constructor() { }\n\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n  }\n\n}\n","<div class=\"form-dialog vx-d-flex vx-align-center vx-justify-center\" [class.animate]=\"animation\">\n    <div class=\"form-dialog-container\">\n        <div class=\"form-dialog-head vx-d-flex vx-align-center vx-justify-between vx-pl-5 vx-pr-5 vx-mb-5\">\n            <div class=\"vx-fs-14 vx-label-txt\">Pause this Responsibility</div>\n            <button class=\"close-btn vx-fs-14 vx-p-0 vx-m-0 vx-d-flex\"><i class=\"icons\">&#xe9ae;</i></button>\n        </div>\n        <div class=\"form-dialog-body\">\n            <div class=\"form-group vx-mb-5\">\n                <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">Form</div>\n                <input type=\"text\" placeholder=\"Select date\">\n            </div>\n            <div class=\"form-group vx-mb-5\">\n                <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">To</div>\n                <input type=\"text\" placeholder=\"Select date\">\n            </div>\n        </div>\n        <div class=\"form-dialog-footer vx-d-flex vx-align-center vx-justify-end vx-pl-4 vx-pr-4 vx-mt-5\">\n            <button class=\"save-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\">Save</button>\n        </div>\n    </div>\n</div>","import { Observable, Subject } from 'rxjs';\n\nexport class DialogRef {\n  private readonly afterDialogClosed = new Subject<any>();\n  private readonly afterEventEmited = new Subject<any>();\n  private readonly afterEventReceived = new Subject<any>();\n  afterClosed: Observable<any> = this.afterDialogClosed.asObservable();\n  afterEvent: Observable<any> = this.afterEventEmited.asObservable();\n  eventReceived: Observable<any> = this.afterEventReceived.asObservable();\n  constructor() {}\n\n  close(result?: any) {\n    this.afterDialogClosed.next(result);\n  }\n\n//this function is used to emit an event to the parent reference\n  emitEvent(result?:any){\n    this.afterEventEmited.next(result)\n  }\n//this function is used to send an event to the dialog from the parent reference\n  sendEvent(result?:any){\n    this.afterEventReceived.next(result);\n  }\n}\n","export class DialogConfig<D = any> {\n  data?: D;\n  position?: any;\n  background?: any;\n}\n","import { Component, OnInit } from '@angular/core';\nimport { DialogConfig } from '../../ui-dialog/ui-dialog-config';\nimport { DialogRef } from '../../ui-dialog/ui-dialog-ref';\n\n@Component({\n    selector: 'transfer-handover',\n    templateUrl: './transfer-handover.component.html',\n    styleUrls: ['./transfer-handover.component.less'],\n    standalone: false\n})\nexport class TransferHandoverComponent implements OnInit {\n  animation = false;\n\n  constructor(\n    private dialog: DialogRef,\n    public dialogConfig:DialogConfig\n  ) { }\n\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n  }\n\n}\n","<div class=\"alert-dialog vx-d-flex vx-align-center vx-justify-center\" [class.animate]=\"animation\">\n    <div class=\"alert-dialog-container\">\n      <div class=\"alert-dialog-body\">\n        <div class=\"alert-dialog-icon vx-d-flex vx-align-center vx-justify-center\">\n          <!-- Transfer icon -->\n          <i class=\"icons\">&#xe9e5;</i>\n          <!-- Handover icon -->\n          <i *ngIf=\"false\" class=\"icons\">&#xea7c;</i>\n        </div>\n        <p class=\"vx-fs-15 vx-paragraph-txt vx-m-0 vx-text-center\">This action will Transfer this responsibility.</p>\n        <div class=\"vx-d-flex vx-align-center vx-justify-center vx-mt-3\">\n            <div class=\"vx-fs-11 vx-paragraph-txt vx-mr-2\">to</div>\n            <div appPopover (click)=\"users.popover()\" placement=\"left\" class=\"custom-select-box vx-fs-12 vx-paragraph-txt vx-p-2 vx-d-flex vx-align-center vx-justify-between\">\n                <div class=\"value vx-pr-2\">Select User</div>\n                <i class=\"icons\">&#xe9e8;</i>\n            </div>\n            <app-popover #users [dontCloseonClick]=\"true\">\n                <div class=\"action-list\">\n                  <ul class=\"action-item\">\n                      <li class=\"search-field\">\n                          <input type=\"text\" placeholder=\"Search...\" class=\"search\">\n                      </li>\n                    <li *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\"><button>Harshvardhan Kariwala</button></li>\n                  </ul>\n                </div>\n            </app-popover>\n        </div>\n      </div>\n      <div class=\"alert-dialog-footer vx-d-flex vx-align-center vx-justify-between vx-p-3\">\n        <p class=\"vx-fs-12 vx-lable-txt vx-m-0\">Are you sure you would like to proceed?</p>\n        <div class=\"vx-d-flex vx-align-center\">\n          <button class=\"no-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\">No</button>\n          <button class=\"yes-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\">Yes</button>\n        </div>\n      </div>\n    </div>\n  </div>\n  ","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PopoverComponent } from './popover.component';\nimport { PopoverDirective } from './popover.directive';\nimport { PopoverService } from './popover.service';\n\n@NgModule({\n  declarations: [PopoverComponent, PopoverDirective],\n  imports: [CommonModule],\n  exports: [PopoverComponent, PopoverDirective],\n  providers: [PopoverService],\n})\nexport class PopoverModule {}\n","import { Injectable, Optional } from '@angular/core';\nimport { SnackBarService } from '../../ui-elements/snack-bar/snack-bar.service';\nimport { HttpClient, HttpEvent, HttpEventType, HttpHeaders } from '@angular/common/http';\nimport { catchError, map, of } from 'rxjs';\nimport { ApiService } from './api.service';\nimport { Configurations } from '../../../configuration';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class QuickViewService {\n\n  environment: any;\n\n  constructor(\n    private snackBarService: SnackBarService,\n    private http: HttpClient,\n    private apiService: ApiService,\n    @Optional() config?: Configurations\n  ) {\n\n    if(config) this.environment = config.envConfig;\n  }\n\n  shortName(str1: string) {\n    const splitNames = str1.trim().split(' ');\n    let name;\n    if (splitNames.length === 1) {\n      name = splitNames[0].substring(0, 2);\n    }\n    if (splitNames.length > 1) {\n      name = splitNames[0].charAt(0) + splitNames[1].charAt(0);\n    }\n    return name;\n  }\n\n  showErrorSnackbar() {\n    this.snackBarService.show(\n      \"Oops! Something went wrong and we were unable to complete this action. Let's give it another try, shall we?\",\n      'alert'\n    );\n  }\n\n  //For Actions\n  FileUpload(formData: any) {\n    return this.http\n      .post<any>(this.environment.compliancePost + 'complianceReport/fileUpload', formData, {reportProgress: true, observe: 'events' })\n      .pipe(\n        map((event: any) => this.getEventMessage(event, formData)),\n        catchError((err) => of(err))\n      );\n  }\n\n  private getEventMessage(event: HttpEvent<any>, formData: any) {\n    switch (event.type) {\n      case HttpEventType.UploadProgress:\n        return this.fileUploadProgress(event);\n      case HttpEventType.Response:\n        return this.apiResponse(event);\n      default:\n    }\n  }\n\n  private fileUploadProgress(event: any) {\n    const percentDone = Math.round((100 * event.loaded) / event.total);\n    return { status: 'progress', message: percentDone };\n  }\n\n  private apiResponse(event: any) {\n    return event.body;\n  }\n\n  // remove uploaded file from add past event\n  fileRemove(attachmentId: any) {\n    return this.http.get<any>(this.environment.complianceFile + 'file/removeAttachment&id=' + attachmentId);\n  }\n\n  uploadToNode(payload: any, des: any) {\n    return this.http.post<any>(this.environment.fileUploadEndPoint + des, payload);\n  }\n}\n","import {\n  Component,\n  OnInit,\n  Input,\n  Output,\n  EventEmitter,\n  OnChanges,\n  DoCheck,\n  ElementRef,\n  ViewChild,\n} from '@angular/core';\nimport { CommonModule, DatePipe } from '@angular/common';\n// import { FileUploadService } from '../service/file-upload.service';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\ndayjs.extend(customParseFormat);\nimport { AuthorizerService } from '@vcomply/authorizer';\n// import { WebApiService } from '../service/web-api.service';\nimport { QuickViewService } from '../../shared/services/quick-view.service';\nimport { ApiService } from '../../shared/services/api.service';\nimport { SnackBarService } from '../snack-bar/snack-bar.service';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';\nimport { VcomplyEditorModule } from '@vcomply/editor';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport {\n  DateAdapter,\n  MatNativeDateModule,\n  MAT_DATE_FORMATS,\n  MAT_DATE_LOCALE,\n} from '@angular/material/core';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { PopoverModule } from '../popover/popover.module';\n\nexport const DIALOG_FORM_DATE_FORMATS = {\n  parse: {\n    dateInput: 'LL',\n  },\n  display: {\n    dateInput: 'DD MMM YYYY',\n    monthYearLabel: 'MMM YYYY',\n    dateA11yLabel: 'LL',\n    monthYearA11yLabel: 'MMMM YYYY',\n  },\n};\n\n@Component({\n  selector: 'app-dialog-action-form',\n  templateUrl: './dialog-form.component.html',\n  styleUrls: ['./dialog-form.component.less'],\n  standalone: true,\n  imports: [\n    CommonModule,\n    FormsModule,\n    ReactiveFormsModule,\n    NgxMaterialTimepickerModule,\n    VcomplyEditorModule,\n    MatDatepickerModule,\n    MatNativeDateModule,\n    PopoverModule,\n  ],\n  providers: [\n    DatePipe,\n    { provide: MAT_DATE_FORMATS, useValue: DIALOG_FORM_DATE_FORMATS },\n    {\n      provide: DateAdapter,\n      useClass: MomentDateAdapter,\n      deps: [MAT_DATE_LOCALE],\n    },\n  ],\n})\nexport class DialogActionFormComponent implements OnInit, OnChanges, DoCheck {\n  animation = false;\n  @Input() data: any;\n  @Input() isList = false;\n  @Input() isTextEditor = false;\n  @Input() isFileUpload = false;\n  @Output() actionData = new EventEmitter();\n  date1: any;\n  date2: any;\n  showOption = false;\n  eventDateError = false;\n  eventDate2Error = false;\n  eventStatusName = 'Completed';\n  selectedCompliance = 1;\n  selectedComplianceDate: any = new Date();\n  selectedComplianceDate2: any = new Date();\n  minDate: any;\n  maxDate: any;\n  today = new Date();\n  reportObject_id: any;\n  uploadedFiles: Array<any> = [];\n  fileName: Array<any> = [];\n  files = [];\n  dropZoneHovered = false;\n  attachmentId: Array<any> = [];\n  attachmentResponse: any;\n  isAddDate = true;\n  isSubmit = true;\n  isRevoke = false;\n  reasonData: string = '';\n  editDueDateId: any;\n  searchText = '';\n  startTime: any = '11:59 pm';\n  numb = '';\n  failedValue: any = '5';\n  reminderValue: any = '15';\n  timeData = '11:59 pm';\n  dateObject: any;\n  isValidTime = true;\n  datepickerOverlay = false;\n  dailyTime1: any = new Date();\n  todayDate = new Date();\n  fromMinDate = new Date(Date.now() + 86400000);\n  fromDate = new Date();\n  selectedDate: any;\n  dateConfig: any = {\n    format: 'DD MMM YYYY',\n    displayDate: new Date(),\n  };\n  dateFromConfig: any = {\n    format: 'DD MMM YYYY',\n    displayDate: new Date(),\n  };\n  userInfo: any;\n  descriptionComment: any = {\n    id: 'notes',\n    placeholder: 'Add a notes',\n    link: true,\n    colorPalette: true,\n    mode: 'prime',\n    zIndex: 2147483002,\n  };\n  isLoader: boolean = false;\n\n  constructor(\n    // private fileUploadService: FileUploadService,\n    private authorizerService: AuthorizerService,\n    private apiService: ApiService,\n    private snackBarService: SnackBarService,\n    private quickViewService: QuickViewService,\n    private datePipe: DatePipe\n  ) {}\n\n  private getSafeStringValue(value: any, fallback: string) {\n    return value === undefined || value === null ? fallback : String(value);\n  }\n\n  ngOnInit() {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 1000);\n    this.userInfo = this.authorizerService.getUser();\n  }\n\n  ngOnChanges() {\n    if (this.data.minDate) {\n      this.minDate = this.data.minDate;\n      if (this.data.type === 'editDueDate') {\n        this.selectedComplianceDate = new Date(this.minDate);\n        this.eventStatusName = 'Due date';\n        this.selectedCompliance = -1;\n      }\n    } else {\n      this.minDate = '';\n    }\n    if (this.data.maxDate) {\n      this.maxDate = this.data.maxDate;\n    } else {\n      this.maxDate = '';\n    }\n    if (this.data.showDate) {\n      this.selectedComplianceDate = new Date(this.data.showDate);\n      this.todayDate = new Date(this.data.showDate);\n    }\n    if (\n      this.data.reportDetails &&\n      (this.data.type == 'reviewerDueDate' ||\n        this.data.type == 'reinitiateReview')\n    ) {\n      this.reminderValue = this.getSafeStringValue(\n        this.data.reportDetails.review_after_days,\n        this.reminderValue\n      );\n      this.failedValue = this.getSafeStringValue(\n        this.data.reportDetails.review_failed_after_days,\n        this.failedValue\n      );\n    }\n    if (\n      this.data.reportDetails &&\n      this.data.type !== 'reviewerDueDate' &&\n      this.data.type !== 'reinitiateReview'\n    ) {\n      this.reminderValue = this.getSafeStringValue(\n        this.data.reportDetails.reminder_before_days,\n        this.reminderValue\n      );\n      this.failedValue = this.getSafeStringValue(\n        this.data.reportDetails.failed_after_days,\n        this.failedValue\n      );\n    }\n\n    this.dateConfig['min'] = dayjs(this.minDate);\n    this.dateConfig['max'] = dayjs(this.maxDate);\n\n    if (this.data.type === 'editDueDate') {\n      this.getDueDateList();\n    }\n  }\n\n  clickinput() {\n    this.showOption = true;\n  }\n\n  hideOption() {\n    this.showOption = false;\n  }\n  selectedOption(val: any) {\n    this.selectedCompliance = val.value;\n    this.eventStatusName = val.name;\n    if (this.data.type === 'editDueDate') {\n      this.editDueDateId = val._id;\n    }\n  }\n\n  getToday() {\n    return new Date(this.data.minDate * 1000).toISOString().split('T')[0];\n  }\n\n  cancelAction() {\n    if (this.data.type === 'addAPastEvent') {\n      let index = 0;\n      for (const iterator of this.uploadedFiles) {\n        this.deleteFile(index);\n        index++;\n      }\n    }\n    const returnValue = { resultMessage: 'cancel' };\n    this.actionData.emit(returnValue);\n  }\n\n  ngDoCheck() {\n    const selectedTimeDate = new Date(\n      dayjs(this.selectedComplianceDate).unix()\n    );\n    this.date1 = dayjs(this.selectedComplianceDate).format('DD/MM/YYYY');\n    /* Converting the date to a string in the format DD/MM/YYYY */\n    /* Converting the date to a string in the format DD/MM/YYYY */\n    this.date2 = dayjs(this.selectedComplianceDate).format('DD/MM/YYYY');\n\n    this.dateObject = dayjs(\n      this.date1 + ' ' + this.startTime,\n      'DD/MM/YYYY h:mm A'\n    ).unix();\n\n    if (\n      this.reminderValue !== undefined &&\n      this.reminderValue != '' &&\n      Number.parseInt(this.reminderValue) >= 0 &&\n      this.failedValue !== undefined &&\n      this.failedValue !== '' &&\n      Number.parseInt(this.failedValue) >= 0 &&\n      Date.now() / 1000 < this.dateObject &&\n      this.data.type !== 'reviewerDueDate' &&\n      this.data.type !== 'pauseResponsibility'\n    ) {\n      this.isAddDate = true;\n    } else {\n      this.isAddDate = false;\n    }\n    if (\n      this.reminderValue !== undefined &&\n      this.reminderValue != '' &&\n      Number.parseInt(this.reminderValue) > 0 &&\n      this.failedValue !== undefined &&\n      this.failedValue !== '' &&\n      Number.parseInt(this.failedValue) >= 0 &&\n      this.data.type === 'reviewerDueDate' &&\n      this.data.type !== 'pauseResponsibility'\n    ) {\n      this.isAddDate = true;\n    } else {\n      this.isAddDate = false;\n    }\n    if (\n      this.data.action === 'revokeDelegation' ||\n      this.data.action === 'revokeHandover'\n    ) {\n      if (this.reasonData?.replace(/&nbsp;/g, '').trim()?.length < 1) {\n        this.isRevoke = false;\n        return;\n      } else {\n        this.isRevoke = true;\n      }\n    }\n    if (this.data.type === 'editDueDate') {\n      if (this.selectedCompliance !== null && this.date2 !== null) {\n        this.isSubmit = true;\n      } else {\n        this.isSubmit = false;\n      }\n    }\n    if (this.data.type === 'pauseResponsibility') {\n      if (this.date1 == null || this.date2 == null) {\n        this.isSubmit = false;\n        return;\n      }\n\n      const fromDate = dayjs(this.date1).unix();\n      const toDate = dayjs(this.date2).unix();\n      this.maxDate = new Date(toDate * 1000);\n      if (toDate < fromDate) {\n        this.isSubmit = false;\n        this.eventDate2Error = true;\n        return;\n      }\n      if (fromDate > toDate) {\n        this.isSubmit = false;\n        this.eventDate2Error = true;\n        return;\n      }\n      this.isSubmit = true;\n    }\n\n    if (this.data.type === 'addNewDueDate') {\n      this.isAddDate = true;\n    }\n  }\n\n  submitForm() {\n    let complianceVal = '';\n    let data;\n    if (this.selectedCompliance === 1) {\n      complianceVal = 'Completed';\n    } else if (this.selectedCompliance === 2) {\n      complianceVal = 'Delayed';\n    } else {\n      complianceVal = 'Failed';\n    }\n    switch (true) {\n      case this.data.type === 'addNewDueDate': {\n        const dueTime = dayjs(this.startTime, 'h:mm A').format('HH:mm:ss');\n        data = {\n          failed_after_days: this.failedValue,\n          reminder_before_days: this.reminderValue,\n          date: dayjs(this.todayDate).format('DD/MM/YYYY'),\n          time: dueTime,\n        };\n        break;\n      }\n      case this.data.type === 'addAPastEvent': {\n        data = {\n          dateDate: dayjs(this.todayDate).format('DD/MM/YYYY'),\n          compliance: complianceVal,\n          reason: this.reasonData,\n          attachmentIds: this.attachmentId.join(','),\n        };\n        break;\n      }\n      case this.data.type === 'pauseResponsibility': {\n        data = {\n          fromDate: this.date1,\n          toDate: this.date2,\n        };\n        break;\n      }\n      case this.data.type === 'editDueDate': {\n        data = {\n          oldDateId: this.editDueDateId,\n          newDate: this.datePipe.transform(\n            this.selectedComplianceDate2,\n            'dd/MM/yyyy'\n          ),\n          reason: this.reasonData,\n        };\n        break;\n      }\n      case this.data.action === 'revokeDelegation' ||\n        this.data.action === 'revokeHandover':\n        {\n          data = {\n            repo: this.data.reportDetails,\n            memberId: this.data.memberId,\n            reason: this.reasonData,\n          };\n        }\n        break;\n      case this.data.type === 'reviewerDueDate':\n        {\n          const dueTime = 7642383832;\n          data = {\n            failed_after_days: this.failedValue,\n            reminder_before_days: this.reminderValue,\n            date: this.date1,\n            time: dueTime,\n            reason: this.reasonData,\n          };\n        }\n        break;\n      case this.data.type === 'reinitiateReview':\n        {\n          data = {\n            comment: this.reasonData,\n            date: this.date1,\n            type: this.data?.duedateType,\n            dueDateId: this.data.dueDateId,\n          };\n        }\n        break;\n    }\n\n    const returnValue = {\n      resultMessage: 'apply',\n      type: this.data.type,\n      action: this.data.action,\n      info: [data],\n    };\n    this.actionData.emit(returnValue);\n  }\n\n  fileExistsBefore(name: string) {\n    for (let i = 0; i < this.uploadedFiles.length; i++) {\n      if (this.uploadedFiles[i].name === name) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  onFileUpload(event: any) {\n    this.isSubmit = false;\n    const userEmail = this.userInfo.email;\n    const memberId = this.userInfo.id;\n    for (let i = 0; i < event.target.files.length; i++) {\n      const formData = new FormData();\n      const file = event.target.files[i];\n      if (!this.fileExistsBefore(file.name)) {\n        this.fileName.push(file.name);\n        this.uploadedFiles.push({\n          name: file.name,\n          extension: file.name\n            .substring(file.name.lastIndexOf('.') + 1)\n            .toUpperCase(),\n        });\n        formData.append('file', file);\n        this.quickViewService\n          .uploadToNode(\n            formData,\n            'uploads/' +\n              userEmail +\n              '/' +\n              this.data.reportDetails.ReportId +\n              '/reports/'\n          )\n          .subscribe((data: any) => {\n            if (data) {\n              this.fileName = this.fileName.filter(\n                (ele) => ele !== data.org_file\n              );\n              const payload = {\n                filepath: 'uploadFormat',\n                file_name: data.org_file,\n                filename: data.name,\n                original_filename: data.org_file,\n              };\n              const attachmentPayload = {\n                action_type: 'ADD_EVENT',\n                due_date_id: 0,\n                file_path: data,\n                member_id: memberId,\n                report_id: this.data.reportDetails.ReportId,\n              };\n              this.attachmentResponse = undefined;\n              this.quickViewService\n                .FileUpload(attachmentPayload)\n                .subscribe((res) => {\n                  this.attachmentResponse = res;\n                  if (this.attachmentResponse) {\n                    this.uploadedFiles.forEach((files) => {\n                      if (\n                        files.name === this.attachmentResponse.original_filename\n                      ) {\n                        files.fileId = this.attachmentResponse._id;\n                        files.name = file.name;\n                        files.extension = file.name\n                          .substring(file.name.lastIndexOf('.') + 1)\n                          .toUpperCase();\n                      }\n                    });\n                    this.attachmentId.push(\n                      this.attachmentResponse.attachment_id\n                    );\n                    if (\n                      this.attachmentId.length === this.uploadedFiles.length\n                    ) {\n                      this.isSubmit = true;\n                    }\n                  }\n                  this.attachmentId = this.attachmentId.filter((ele) => ele);\n                });\n            }\n          });\n      }\n    }\n  }\n  deleteFile(i: number) {\n    const payload = this.uploadedFiles[i].fileId;\n    try {\n      if (this.fileName || this.data) {\n        this.quickViewService.fileRemove(payload).subscribe((data: any) => {\n          this.fileName = this.fileName.filter(\n            (name) => name !== this.uploadedFiles[i].name\n          );\n          this.files = this.files.filter(\n            (file: any) => file.file_name !== this.uploadedFiles[i].name\n          );\n          this.uploadedFiles.splice(i, 1);\n          if (this.uploadedFiles.length === 0) {\n            this.dragHoverOut();\n          }\n          this.attachmentId.splice(i, 1);\n        });\n      }\n    } catch (e) {\n      console.error(e);\n    }\n  }\n\n  dragHover() {\n    this.dropZoneHovered = true;\n  }\n\n  dragHoverOut() {\n    this.dropZoneHovered = false;\n  }\n\n  applyClass(val: any) {\n    return val.toString().toLowerCase();\n  }\n\n  getDate(event: any) {\n    this.todayDate = new Date(event);\n    this.fromMinDate = new Date(dayjs(this.todayDate).unix() * 1000 + 86400000);\n    this.selectedComplianceDate2 = new Date(this.fromMinDate);\n    this.date1 = this.datePipe.transform(event, 'dd/MM/yyyy');\n  }\n\n  getFromDate(event: any) {\n    this.fromDate = new Date(dayjs(event.date).unix() * 1000);\n  }\n\n  getDueDateList() {\n    this.isLoader = true;\n    const url: string = `compliance_post/?mode=futureDuedateList&reportId=${this.data._id}`;\n    this.apiService.post(url, {}).subscribe({\n      next: (dueDate: any) => {\n        dueDate = dueDate.map((date: any) => {\n          this.isLoader = false;\n          const dueDate = this.changeTimeZone(date.due_date_timestamp * 1000);\n          date['name'] = dayjs(dueDate).format('DD MMM YYYY');\n          date['value'] = dayjs(dueDate).format('DD MMM YYYY');\n          return date;\n        });\n\n        this.data.listItems = [...dueDate];\n      },\n      error: () => {\n        this.isLoader = false;\n        this.snackBarService.show(\n          \"Oops! Something went wrong and we were unable to complete this action. Let's give it another try, shall we?\",\n          'alert'\n        );\n      },\n    });\n  }\n\n  changeTimeZone(date: any) {\n    if (typeof date === 'number') {\n      if (date === 0) {\n        return '';\n      }\n      date = new Date(date);\n    }\n    const invDate = new Date(\n      date.toLocaleString('en-US', {\n        timeZone: this.authorizerService.getUserTimezone(),\n      })\n    );\n    return invDate;\n  }\n\n  onDueDateSelected(event: any) {\n    this.date2 = this.datePipe.transform(event, 'dd/MM/yyyy');\n  }\n}\n","<div class=\"main-dialog vx-d-flex vx-align-center vx-justify-center\">\n  <div class=\"main-dialog-inner\" [class.animate]=\"animation\">\n    <div class=\"form-head vx-d-flex vx-align-center vx-justify-between\">\n      <div class=\"form-heading\" [innerHtml]=\"data.title\">{{ data.title }}</div>\n      <i class=\"icons cursor-pointer close-icon\" (click)=\"cancelAction()\"\n        >&#xe90d;</i\n      >\n    </div>\n    <div class=\"form-content\">\n      <div\n        *ngIf=\"data.calenderPlaceHolder\"\n        class=\"date-formField vx-mb-5 vx-w-100\"\n      >\n        <div\n          class=\"date-fieldLabel vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\"\n          [class.active]=\"true\"\n        >\n          {{ data.calenderPlaceHolder }}\n        </div>\n        <div class=\"vx-d-flex vx-align-center\">\n          <div class=\"date-form-input vx-d-flex vx-align-center vx-w-100\">\n            <div class=\"date-time-area\">\n              <input\n                [matDatepicker]=\"formPicker\"\n                class=\"datePicker\"\n                [(ngModel)]=\"selectedComplianceDate\"\n                (ngModelChange)=\"getDate($event)\"\n                [min]=\"minDate == '' ? false : minDate\"\n                [max]=\"maxDate\"\n                [placeholder]=\"todayDate | date : 'dd MMM YYYY'\"\n              />\n              <mat-datepicker-toggle\n                matSuffix\n                [for]=\"formPicker\"\n              ></mat-datepicker-toggle>\n              <mat-datepicker #formPicker></mat-datepicker>\n            </div>\n          </div>\n          <div\n            *ngIf=\"data?.showAddDate && data.type !== 'reinitiateReview'\"\n            class=\"time-picker vx-d-flex vx-align-center vx-ml-1\"\n          >\n            <input\n              class=\"time-picker-input\"\n              aria-label=\"24hr format\"\n              [ngxTimepicker]=\"dailyTime1\"\n              [(ngModel)]=\"startTime\"\n              readonly\n            />\n            <span class=\"time-clock-icon vx-fs-14 vx-paragraph-txt\"\n              ><i class=\"icons\">&#xe955;</i></span\n            >\n            <ngx-material-timepicker\n              #dailyTime1\n              [enableKeyboardInput]=\"true\"\n            ></ngx-material-timepicker>\n          </div>\n        </div>\n      </div>\n      <div *ngIf=\"isList\" class=\"custom-select vx-mb-5 vx-w-100\">\n        <div\n          class=\"date-fieldLabel vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\"\n          [class.active]=\"eventStatusName != ''\"\n        >\n          {{ data.listPlaceHolder }}\n        </div>\n\n        <div\n          class=\"custom-select-box\"\n          appPopover\n          (click)=\"formDropDown.popover()\"\n          position=\"left\"\n        >\n          {{ isLoader ? \"Loading..\" : eventStatusName }}\n          <i class=\"icons vx-fs-14 vx-paragraph-txt\">&#xe9e8;</i>\n        </div>\n        <app-popover #formDropDown>\n          <div class=\"action-list\" style=\"width: 489px\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"let items of data.listItems\">\n                <button (click)=\"selectedOption(items)\">\n                  {{ items.name }}\n                </button>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n\n      </div>\n      <div class=\"date-formField vx-mb-5 vx-w-100\">\n        <ng-container *ngIf=\"data.calenderPlaceHolder2\">\n          <div\n            class=\"date-fieldLabel vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\"\n            [class.active]=\"false\"\n          >\n            {{ data?.calenderPlaceHolder2 }}\n          </div>\n          <div class=\"vx-d-flex vx-align-center\">\n            <div\n              class=\"date-form-input vx-d-flex vx-align-center vx-w-100 vx-mb-5\"\n            >\n              <div class=\"date-time-area\">\n                <input\n                  [matDatepicker]=\"toPicker\"\n                  class=\"datePicker\"\n                  [(ngModel)]=\"selectedComplianceDate2\"\n                  (ngModelChange)=\"onDueDateSelected($event)\"\n                  [placeholder]=\"fromMinDate | date : 'dd MMM YYYY'\"\n                  [min]=\"fromMinDate\"\n                />\n                <mat-datepicker-toggle\n                  matSuffix\n                  [for]=\"toPicker\"\n                ></mat-datepicker-toggle>\n                <mat-datepicker #toPicker></mat-datepicker>\n              </div>\n            </div>\n          </div>\n        </ng-container>\n\n        <div *ngIf=\"isTextEditor\" class=\"form-field vx-mb-5 vx-w-100\">\n          <div\n            class=\"date-fieldLabel vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\"\n          >\n            Notes\n          </div>\n          <vcomply-editor [(ngModel)]=\"reasonData\"></vcomply-editor>\n        </div>\n\n        <div\n          *ngIf=\"isFileUpload\"\n          class=\"date-fieldLabel vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\"\n        >\n          Upload File\n        </div>\n        <div *ngIf=\"isFileUpload\" class=\"file-field vx-mb-5 vx-w-100\">\n          <div\n            *ngIf=\"uploadedFiles.length < 1\"\n            class=\"vx-d-flex vx-align-center vx-justify-center\"\n          >\n            <div class=\"drop-file w-50\" (dragenter)=\"dragHover()\">\n              <span>Drop files here</span>\n            </div>\n            <div class=\"w-50 vx-d-flex vx-align-center vx-justify-between\">\n              <div class=\"or-div vx-ml-2 vx-mr-2\">or</div>\n              <label class=\"browse-btn\">\n                <input type=\"file\" (change)=\"onFileUpload($event)\" multiple />\n                <i class=\"icons\">&#xeade;</i> Browse File\n              </label>\n            </div>\n            <div class=\"drag-hover\" [class.active]=\"dropZoneHovered\">\n              <input type=\"file\" (change)=\"onFileUpload($event)\" multiple />\n            </div>\n          </div>\n          <ng-container>\n            <div\n              class=\"file-item width100\"\n              *ngFor=\"let eachFile of uploadedFiles; let i = index\"\n            >\n              <div class=\"vx-d-flex vx-align-center\">\n                <span\n                  class=\"file table\"\n                  [ngClass]=\"applyClass(eachFile?.extension)\"\n                >\n                  <i class=\"icons\">&#xe92e;</i>\n                  <span class=\"format\">\n                    <ng-container\n                      *ngIf=\"\n                        eachFile.extension == 'docx' ||\n                        eachFile.extension == 'DOCX'\n                      \"\n                      >doc</ng-container\n                    >\n                    <ng-container\n                      *ngIf=\"\n                        eachFile.extension == 'jpeg' ||\n                        eachFile.extension == 'JPEG'\n                      \"\n                      >jpg</ng-container\n                    >\n                    <ng-container\n                      *ngIf=\"\n                        eachFile.extension == 'xlsx' ||\n                        eachFile.extension == 'XLSX'\n                      \"\n                      >xls</ng-container\n                    >\n                    <ng-container\n                      *ngIf=\"\n                        eachFile.extension == 'pptx' ||\n                        eachFile.extension == 'PPTX'\n                      \"\n                      >ppt</ng-container\n                    >\n                    <ng-container\n                      *ngIf=\"\n                        eachFile.extension != 'docx' &&\n                        eachFile.extension != 'DOCX' &&\n                        eachFile.extension != 'jpeg' &&\n                        eachFile.extension != 'JPEG' &&\n                        eachFile.extension != 'xlsx' &&\n                        eachFile.extension != 'XLSX' &&\n                        eachFile.extension != 'pptx' &&\n                        eachFile.extension != 'PPTX'\n                      \"\n                      >{{ eachFile.extension }}\n                    </ng-container>\n                  </span>\n                </span>\n                <div class=\"file-item-right\">\n                  <div class=\"vx-d-flex vx-align-center\">\n                    <div class=\"file-item-part\">\n                      <div class=\"file-name\">{{ eachFile?.name }}</div>\n                      <span\n                        *ngIf=\"fileName?.includes(eachFile?.name)\"\n                        class=\"file-status\"\n                        >Uploading...</span\n                      >\n                    </div>\n                    <div class=\"vx-d-flex vx-align-center delete-icon\">\n                      <i class=\"icons\" (click)=\"deleteFile(i)\">&#xe923;</i>\n                    </div>\n                  </div>\n                  <div\n                    *ngIf=\"fileName?.includes(eachFile?.name)\"\n                    class=\"progress\"\n                  >\n                    <div class=\"indeterminate\"></div>\n                  </div>\n                </div>\n              </div>\n            </div>\n            <div class=\"uploadcallFlex\">\n              <label for=\"dialog-form-upload-more-files\"\n                >Do you want insert more files? <span>Drop Files Here</span> /\n                <span class=\"btn\">Browse</span>\n              </label>\n              <input\n                id=\"dialog-form-upload-more-files\"\n                type=\"file\"\n                (change)=\"onFileUpload($event)\"\n                multiple\n              />\n            </div>\n          </ng-container>\n        </div>\n\n        <ng-container *ngIf=\"data?.showAddDate\">\n          <div\n            *ngIf=\"\n              data.type !== 'reviewerDueDate' &&\n              data.type !== 'reinitiateReview'\n            \"\n            class=\"reminder-text\"\n          >\n            The responsibility can be marked as\n            <i class=\"blue-text\">complete</i>\n            <input\n              onkeydown=\"return event.keyCode !== 190\"\n              min=\"0\"\n              oninput=\"this.value = Math.abs(this.value)\"\n              type=\"number\"\n              [value]=\"reminderValue\"\n              [(ngModel)]=\"reminderValue\"\n            />\n            {{ reminderValue <= 1 ? \"day\" : \"days\" }} before the due date.\n          </div>\n          <div\n            *ngIf=\"\n              data.type === 'reviewerDueDate' ||\n              data.type === 'reinitiateReview'\n            \"\n            class=\"reminder-text\"\n          >\n            This responsibility needs to be\n            <i class=\"blue-text\">reviewed </i> within\n            <input\n              onkeydown=\"return event.keyCode !== 190\"\n              min=\"0\"\n              oninput=\"this.value = Math.abs(this.value)\"\n              type=\"number\"\n              [value]=\"reminderValue\"\n              [(ngModel)]=\"reminderValue\"\n              [readonly]=\"data.type === 'reinitiateReview'\"\n            />\n            {{ reminderValue <= 1 ? \"day\" : \"days\" }} after it has been\n            completed.\n          </div>\n\n          <div\n            *ngIf=\"\n              data.type !== 'reviewerDueDate' &&\n              data.type !== 'reinitiateReview'\n            \"\n            class=\"reminder-text\"\n          >\n            The responsibility will be marked as\n            <i class=\"red-text\">not completed</i>\n            <input\n              onkeydown=\"return event.keyCode !== 190\"\n              min=\"0\"\n              oninput=\"this.value = Math.abs(this.value)\"\n              type=\"number\"\n              [value]=\"failedValue\"\n              [(ngModel)]=\"failedValue\"\n            />\n            {{ failedValue <= 1 ? \"day\" : \"days\" }} after the due date if it is\n            not done.\n          </div>\n          <div\n            *ngIf=\"\n              data.type === 'reviewerDueDate' ||\n              data.type === 'reinitiateReview'\n            \"\n            class=\"reminder-text\"\n          >\n            The review status for this responsibility will be marked as\n            <i class=\"red-text\">not completed</i>\n            <input\n              onkeydown=\"return event.keyCode !== 190\"\n              min=\"0\"\n              oninput=\"this.value = Math.abs(this.value)\"\n              type=\"number\"\n              [value]=\"failedValue\"\n              [(ngModel)]=\"failedValue\"\n              [readonly]=\"data.type === 'reinitiateReview'\"\n            />\n            {{ failedValue <= 1 ? \"day\" : \"days\" }} after the due date if not\n            reviewed.\n          </div>\n        </ng-container>\n      </div>\n    </div>\n    <div class=\"form-bottom vx-d-flex vx-align-center vx-justify-end\">\n      <button\n        *ngIf=\"data?.showCancelButton\"\n        class=\"white-btn\"\n        (click)=\"cancelAction()\"\n      >\n        Cancel\n      </button>\n      <button\n        *ngIf=\"data?.showSaveButton\"\n        [class.disabled]=\"!isSubmit\"\n        (click)=\"submitForm()\"\n      >\n        Save\n      </button>\n      <button\n        *ngIf=\"\n          data?.showAddDate &&\n          data.type !== 'reviewerDueDate' &&\n          data.type !== 'reinitiateReview'\n        \"\n        [class.disabled]=\"!isAddDate\"\n        (click)=\"submitForm()\"\n      >\n        Add Date\n      </button>\n      <button\n        *ngIf=\"data?.showAddDate && data.type === 'reviewerDueDate'\"\n        [class.disabled]=\"!isAddDate\"\n        (click)=\"submitForm()\"\n      >\n        Submit\n      </button>\n      <button\n        *ngIf=\"data?.showRevokeButton\"\n        class=\"red-btn\"\n        [class.disabled]=\"!isRevoke\"\n        (click)=\"submitForm()\"\n      >\n        Revoke\n      </button>\n    </div>\n  </div>\n</div>\n","import { CommonModule, formatDate } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, Output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\n\ndayjs.extend(customParseFormat);\n\n@Component({\n  selector: 'rqv-add-new-due-date-dialog',\n  standalone: true,\n  imports: [\n    CommonModule,\n    FormsModule,\n    MatDatepickerModule,\n    MatNativeDateModule,\n    NgxMaterialTimepickerModule,\n  ],\n  template: `\n    <div class=\"rqv-add-due-date\" [class.animate]=\"animation\">\n      <div class=\"rqv-header\">\n        <div class=\"rqv-title\">{{ data?.title || 'Add new due date' }}</div>\n        <button type=\"button\" class=\"rqv-close\" (click)=\"cancel()\">\n          <i class=\"icons\">&#xe90d;</i>\n        </button>\n      </div>\n\n      <div class=\"rqv-body\">\n        <div class=\"rqv-label\">{{ data?.calenderPlaceHolder || 'Event Date' }}</div>\n        <div class=\"rqv-row\">\n          <div class=\"rqv-date-wrap\">\n            <input\n              [matDatepicker]=\"picker\"\n              class=\"rqv-date-proxy\"\n              [(ngModel)]=\"selectedDate\"\n              [min]=\"minDate\"\n              tabindex=\"-1\"\n            />\n            <input\n              class=\"rqv-date-input\"\n              [value]=\"selectedDate | date : 'dd MMM yyyy'\"\n              readonly\n              (click)=\"openPicker(picker)\"\n            />\n            <mat-datepicker-toggle\n              class=\"rqv-calendar-toggle\"\n              matSuffix\n              [for]=\"picker\"\n            ></mat-datepicker-toggle>\n            <mat-datepicker #picker></mat-datepicker>\n          </div>\n\n          <div class=\"rqv-time-wrap\">\n            <input\n              class=\"rqv-time-input\"\n              [ngxTimepicker]=\"timePicker\"\n              [(ngModel)]=\"startTime\"\n              readonly\n            />\n            <span class=\"rqv-time-icon\"><i class=\"icons\">&#xe955;</i></span>\n            <ngx-material-timepicker #timePicker [enableKeyboardInput]=\"true\"></ngx-material-timepicker>\n          </div>\n        </div>\n\n        <div class=\"rqv-copy\">\n          The responsibility can be marked as\n          <span class=\"blue\">complete</span>\n          <input type=\"number\" min=\"0\" [(ngModel)]=\"reminderValue\" />\n          {{ +reminderValue <= 1 ? 'day' : 'days' }} before the due date.\n        </div>\n\n        <div class=\"rqv-copy\">\n          The responsibility will be marked as\n          <span class=\"red\">not completed</span>\n          <input type=\"number\" min=\"0\" [(ngModel)]=\"failedValue\" />\n          {{ +failedValue <= 1 ? 'day' : 'days' }} after the due date if it is\n          not done.\n        </div>\n      </div>\n\n      <div class=\"rqv-footer\">\n        <button type=\"button\" class=\"rqv-btn secondary\" (click)=\"cancel()\">Cancel</button>\n        <button type=\"button\" class=\"rqv-btn primary\" (click)=\"submit()\">Add Date</button>\n      </div>\n    </div>\n  `,\n  styles: [\n    `\n      .rqv-add-due-date {\n        width: 540px;\n        background: #fff;\n        border-radius: 4px;\n        overflow: hidden;\n      }\n\n      .rqv-add-due-date.animate {\n        animation: rqv-scale 0.2s ease-out;\n      }\n\n      .rqv-header,\n      .rqv-footer {\n        display: flex;\n        align-items: center;\n        justify-content: space-between;\n        padding: 14px 20px;\n        background: #f8f8f8;\n      }\n\n      .rqv-title {\n        font-size: 16px;\n        font-weight: 500;\n        color: #161b2f;\n      }\n\n      .rqv-close {\n        border: none;\n        background: transparent;\n        cursor: pointer;\n        padding: 0;\n      }\n\n      .rqv-close i {\n        font-size: 12px;\n        color: #161b2f;\n      }\n\n      .rqv-body {\n        padding: 20px 24px;\n      }\n\n      .rqv-label {\n        font-size: 11px;\n        font-weight: 500;\n        color: #161b2f;\n        text-transform: uppercase;\n        margin-bottom: 8px;\n      }\n\n      .rqv-row {\n        display: flex;\n        gap: 8px;\n        align-items: center;\n      }\n\n      .rqv-date-wrap,\n      .rqv-time-wrap {\n        position: relative;\n      }\n\n      .rqv-date-wrap {\n        flex: 1;\n      }\n\n      .rqv-date-input,\n      .rqv-time-input {\n        width: 100%;\n        height: 40px;\n        border: 1px solid #dcdcdc;\n        border-radius: 4px;\n        padding: 0 10px;\n        font-size: 13px;\n        box-sizing: border-box;\n      }\n\n      .rqv-date-input {\n        padding-right: 44px;\n        cursor: pointer;\n      }\n\n      .rqv-date-proxy {\n        position: absolute;\n        inset: 0;\n        width: 0;\n        height: 0;\n        opacity: 0;\n        pointer-events: none;\n      }\n\n      .rqv-calendar-toggle {\n        position: absolute;\n        top: 1px;\n        right: 1px;\n        width: 40px;\n        height: 38px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n      }\n\n      .rqv-calendar-toggle ::ng-deep button {\n        width: 40px;\n        height: 38px;\n        padding: 0;\n        margin: 0;\n        border: none;\n        background: transparent;\n        box-shadow: none;\n      }\n\n      .rqv-calendar-toggle ::ng-deep .mat-button-ripple,\n      .rqv-calendar-toggle ::ng-deep .mat-button-focus-overlay {\n        display: none;\n      }\n\n      .rqv-calendar-toggle ::ng-deep svg {\n        width: 18px;\n        height: 18px;\n      }\n\n      .rqv-calendar-toggle ::ng-deep svg path {\n        fill: #747576;\n      }\n\n      .rqv-time-wrap {\n        width: 140px;\n      }\n\n      .rqv-time-input {\n        padding-right: 34px;\n      }\n\n      .rqv-time-icon {\n        position: absolute;\n        right: 10px;\n        top: 50%;\n        transform: translateY(-50%);\n        color: #747576;\n        pointer-events: none;\n        font-size: 14px;\n      }\n\n      .rqv-copy {\n        color: #747576;\n        font-size: 13px;\n        margin-top: 18px;\n        line-height: 1.8;\n      }\n\n      .rqv-copy .blue {\n        color: #1e5dd3;\n        font-weight: 600;\n      }\n\n      .rqv-copy .red {\n        color: #d93b41;\n        font-weight: 600;\n      }\n\n      .rqv-copy input {\n        width: 40px;\n        border: none;\n        border-bottom: 2px solid #f1f1f1;\n        text-align: center;\n        margin: 0 4px;\n      }\n\n      .rqv-footer {\n        justify-content: flex-end;\n        gap: 8px;\n        border-top: 1px solid #f1f1f1;\n      }\n\n      .rqv-btn {\n        border: none;\n        border-radius: 2px;\n        padding: 8px 16px;\n        font-size: 11px;\n        font-weight: 500;\n        text-transform: uppercase;\n        cursor: pointer;\n      }\n\n      .rqv-btn.primary {\n        background: #1e5dd3;\n        color: #fff;\n      }\n\n      .rqv-btn.secondary {\n        background: #fff;\n        color: #1e5dd3;\n        border: 1px solid #dcdcdc;\n      }\n\n      @keyframes rqv-scale {\n        from {\n          transform: scale(0.96);\n          opacity: 0;\n        }\n        to {\n          transform: scale(1);\n          opacity: 1;\n        }\n      }\n    `,\n  ],\n})\nexport class AddNewDueDateDialogComponent implements OnChanges {\n  @Input() data: any;\n  @Output() actionData = new EventEmitter<any>();\n\n  animation = true;\n  selectedDate: Date = new Date();\n  minDate: Date = new Date();\n  startTime = '11:59 pm';\n  reminderValue = '15';\n  failedValue = '5';\n\n  ngOnChanges(): void {\n    this.selectedDate = this.data?.showDate ? new Date(this.data.showDate) : new Date();\n    this.minDate = this.data?.minDate ? new Date(this.data.minDate) : new Date();\n    this.reminderValue =\n      this.data?.reportDetails?.reminder_before_days != null\n        ? String(this.data.reportDetails.reminder_before_days)\n        : '15';\n    this.failedValue =\n      this.data?.reportDetails?.failed_after_days != null\n        ? String(this.data.reportDetails.failed_after_days)\n        : '5';\n  }\n\n  cancel() {\n    this.actionData.emit({ resultMessage: 'cancel' });\n  }\n\n  submit() {\n    const dueTime = dayjs(this.startTime, 'h:mm A').format('HH:mm:ss');\n    const payload = {\n      failed_after_days: this.failedValue,\n      reminder_before_days: this.reminderValue,\n      date: formatDate(this.selectedDate, 'dd/MM/yyyy', 'en-US'),\n      time: dueTime,\n    };\n\n    this.actionData.emit({\n      resultMessage: 'apply',\n      type: 'addNewDueDate',\n      action: 'addNewDueDate',\n      info: [payload],\n    });\n  }\n\n  openPicker(picker: any, event?: Event) {\n    event?.stopPropagation();\n    picker.open();\n  }\n}\n","import { CommonModule, formatDate } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, Output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { AuthorizerService } from '@vcomply/authorizer';\nimport { QuickViewService } from '../../shared/services/quick-view.service';\nimport { PopoverModule } from '../../ui-elements/popover/popover.module';\n\ntype UploadedFile = {\n  name: string;\n  extension: string;\n  fileId?: string;\n};\n\n@Component({\n  selector: 'rqv-add-past-event-dialog',\n  standalone: true,\n  imports: [\n    CommonModule,\n    FormsModule,\n    MatDatepickerModule,\n    MatNativeDateModule,\n    PopoverModule,\n  ],\n  templateUrl: './add-past-event-dialog.component.html',\n  styleUrls: ['./add-past-event-dialog.component.less'],\n})\nexport class AddPastEventDialogComponent implements OnChanges {\n  @Input() data: any;\n  @Output() actionData = new EventEmitter<any>();\n\n  animation = true;\n  selectedDate: Date = new Date();\n  maxDate: Date = new Date();\n  selectedCompliance = 1;\n  eventStatusName = 'Completed';\n  listItems: Array<{ value: number; name: string }> = [];\n  reasonData = '';\n  uploadedFiles: UploadedFile[] = [];\n  attachmentIds: string[] = [];\n  uploadingNames: string[] = [];\n  userInfo: any;\n\n  constructor(\n    private authorizerService: AuthorizerService,\n    private quickViewService: QuickViewService\n  ) {\n    this.userInfo = this.authorizerService.getUser();\n  }\n\n  get isUploading() {\n    return this.uploadingNames.length > 0;\n  }\n\n  ngOnChanges(): void {\n    this.selectedDate = this.data?.showDate ? new Date(this.data.showDate) : new Date();\n    this.maxDate = this.data?.maxDate ? new Date(this.data.maxDate) : new Date();\n    this.listItems = this.data?.listItems ?? [\n      { value: 1, name: 'Completed' },\n      { value: 2, name: 'Delayed' },\n      { value: 3, name: 'Not Completed' },\n    ];\n    this.selectedCompliance = this.listItems[0]?.value ?? 1;\n    this.eventStatusName = this.listItems[0]?.name ?? 'Completed';\n  }\n\n  openPicker(picker: any, event?: Event) {\n    event?.stopPropagation();\n    picker.open();\n  }\n\n  cancel() {\n    this.actionData.emit({ resultMessage: 'cancel' });\n  }\n\n  selectedOption(item: { value: number; name: string }) {\n    this.selectedCompliance = item.value;\n    this.eventStatusName = item.name;\n  }\n\n  submit() {\n    const complianceMap: Record<number, string> = {\n      1: 'Completed',\n      2: 'Delayed',\n      3: 'Failed',\n    };\n\n    this.actionData.emit({\n      resultMessage: 'apply',\n      type: 'addAPastEvent',\n      action: 'addAPastEvent',\n      info: [\n        {\n          dateDate: formatDate(this.selectedDate, 'dd/MM/yyyy', 'en-US'),\n          compliance: complianceMap[this.selectedCompliance] ?? 'Failed',\n          reason: this.reasonData,\n          attachmentIds: this.attachmentIds.join(','),\n        },\n      ],\n    });\n  }\n\n  private fileExistsBefore(name: string) {\n    return this.uploadedFiles.some((file) => file.name === name);\n  }\n\n  onFileUpload(event: Event) {\n    const input = event.target as HTMLInputElement;\n    const files = input.files;\n    if (!files?.length) return;\n\n    const userEmail = this.userInfo.email;\n    const memberId = this.userInfo.id;\n\n    Array.from(files).forEach((file) => {\n      if (this.fileExistsBefore(file.name)) {\n        return;\n      }\n\n      const formData = new FormData();\n      formData.append('file', file);\n\n      this.uploadingNames.push(file.name);\n      this.uploadedFiles.push({\n        name: file.name,\n        extension: file.name.substring(file.name.lastIndexOf('.') + 1).toUpperCase(),\n      });\n\n      this.quickViewService\n        .uploadToNode(\n          formData,\n          `uploads/${userEmail}/${this.data.reportDetails.ReportId}/reports/`\n        )\n        .subscribe((response: any) => {\n          if (!response) {\n            return;\n          }\n\n          this.uploadingNames = this.uploadingNames.filter(\n            (name) => name !== response.org_file\n          );\n\n          const attachmentPayload = {\n            action_type: 'ADD_EVENT',\n            due_date_id: 0,\n            file_path: response,\n            member_id: memberId,\n            report_id: this.data.reportDetails.ReportId,\n          };\n\n          this.quickViewService.FileUpload(attachmentPayload).subscribe((uploadRes: any) => {\n            if (!uploadRes?.attachment_id) {\n              return;\n            }\n\n            this.uploadedFiles = this.uploadedFiles.map((uploadedFile) =>\n              uploadedFile.name === uploadRes.original_filename\n                ? {\n                    ...uploadedFile,\n                    fileId: uploadRes._id,\n                    name: file.name,\n                    extension: file.name\n                      .substring(file.name.lastIndexOf('.') + 1)\n                      .toUpperCase(),\n                  }\n                : uploadedFile\n            );\n\n            this.attachmentIds.push(uploadRes.attachment_id);\n            this.attachmentIds = this.attachmentIds.filter(Boolean);\n          });\n        });\n    });\n\n    input.value = '';\n  }\n\n  deleteFile(index: number) {\n    const file = this.uploadedFiles[index];\n    if (!file?.fileId) {\n      this.uploadedFiles.splice(index, 1);\n      return;\n    }\n\n    this.quickViewService.fileRemove(file.fileId).subscribe(() => {\n      this.uploadedFiles.splice(index, 1);\n      this.attachmentIds.splice(index, 1);\n    });\n  }\n}\n","<div class=\"form-dialog-container\" [class.animate]=\"animation\">\n  <div\n    class=\"form-dialog-head vx-d-flex vx-align-center vx-justify-between vx-pl-5 vx-pr-5 vx-pt-3 vx-pb-3\"\n  >\n    <div class=\"vx-fs-14 vx-label-txt\">\n      {{ data?.title || \"Add a Past Event\" }}\n    </div>\n    <button\n      type=\"button\"\n      class=\"close-btn vx-fs-14 vx-p-0 vx-m-0 vx-d-flex\"\n      (click)=\"cancel()\"\n    >\n      <i class=\"icons\">&#xe9ae;</i>\n    </button>\n  </div>\n\n  <div class=\"form-dialog-body\">\n    <div class=\"form-group vx-mb-5\">\n      <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n        {{ data?.calenderPlaceHolder || \"Event Date\" }}\n      </div>\n      <div class=\"date-field-wrap\">\n        <input\n          [matDatepicker]=\"picker\"\n          class=\"date-input-proxy\"\n          [(ngModel)]=\"selectedDate\"\n          [max]=\"maxDate\"\n          tabindex=\"-1\"\n        />\n        <input\n          class=\"date-display-input vx-w-100\"\n          [value]=\"selectedDate | date: 'dd MMM yyyy'\"\n          readonly\n          (click)=\"openPicker(picker)\"\n        />\n        <mat-datepicker-toggle\n          class=\"calendar-toggle\"\n          matSuffix\n          [for]=\"picker\"\n        ></mat-datepicker-toggle>\n        <mat-datepicker #picker></mat-datepicker>\n      </div>\n    </div>\n\n    <div class=\"form-group vx-mb-5\">\n      <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n        {{ data?.listPlaceHolder || \"Event Status\" }}\n      </div>\n      <div\n        class=\"select-box vx-fs-13 vx-paragraph-txt vx-p-2 vx-d-flex vx-align-center vx-justify-between\"\n        appPopover\n        (click)=\"statusDrop.popover()\"\n        placement=\"bottom-left\"\n      >\n        <div class=\"value vx-pr-2\">{{ eventStatusName }}</div>\n        <i class=\"icons vx-paragraph-txt\">&#xe9e8;</i>\n      </div>\n      <app-popover #statusDrop>\n        <div class=\"action-list\">\n          <ul class=\"action-item\">\n            <li *ngFor=\"let item of listItems\">\n              <button\n                type=\"button\"\n                (click)=\"selectedOption(item); statusDrop.closePopover('top')\"\n              >\n                {{ item.name }}\n              </button>\n            </li>\n          </ul>\n        </div>\n      </app-popover>\n    </div>\n\n    <div class=\"form-group vx-mb-5\">\n      <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n        Notes\n      </div>\n      <textarea\n        [(ngModel)]=\"reasonData\"\n        class=\"notes-textarea vx-w-100 vx-fs-13 vx-paragraph-txt\"\n        placeholder=\"Add notes\"\n      ></textarea>\n    </div>\n\n    <div class=\"form-group vx-mb-5\">\n      <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n        Upload File\n      </div>\n      <div class=\"file-field vx-p-5\">\n        <label\n          class=\"browse-btn vx-fs-12 vx-txt-white vx-tt-uppercase vx-pl-5 vx-pr-5 vx-d-inline-flex vx-align-center\"\n        >\n          <input type=\"file\" multiple (change)=\"onFileUpload($event)\" />\n          <i class=\"icons vx-mr-1\">&#xeade;</i> Browse File\n        </label>\n\n        <div\n          *ngFor=\"let file of uploadedFiles; let i = index\"\n          class=\"file-item vx-d-flex vx-align-center vx-justify-between vx-w-100\"\n        >\n          <div class=\"file-left vx-d-flex vx-align-center\">\n            <i class=\"icons vx-paragraph-txt\">&#xe92e;</i>\n            <span class=\"vx-fs-13 vx-label-txt\">{{ file.name }}</span>\n            <span\n              class=\"vx-fs-11 vx-paragraph-txt vx-ml-1\"\n              *ngIf=\"uploadingNames.includes(file.name)\"\n            >\n              Uploading...\n            </span>\n          </div>\n          <button\n            type=\"button\"\n            class=\"delete-btn vx-fs-16 vx-txt-red vx-p-0 vx-m-0\"\n            (click)=\"deleteFile(i)\"\n          >\n            <i class=\"icons\">&#xe923;</i>\n          </button>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div\n    class=\"form-dialog-footer vx-d-flex vx-align-center vx-justify-end vx-pl-4 vx-pr-4\"\n  >\n    <button\n      type=\"button\"\n      class=\"no-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center\"\n      (click)=\"cancel()\"\n    >\n      Cancel\n    </button>\n    <button\n      type=\"button\"\n      class=\"save-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-ml-1\"\n      [class.disabled]=\"isUploading\"\n      (click)=\"submit()\"\n    >\n      Save\n    </button>\n  </div>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { DialogConfig } from '../../../../ui-elements/ui-dialog/ui-dialog-config';\nimport { DialogRef } from '../../../../ui-elements/ui-dialog/ui-dialog-ref';\n\n@Component({\n    selector: 'vui-quick-confirm',\n    templateUrl: './confirm.component.html',\n    styleUrls: ['./confirm.component.less'],\n    standalone: false\n})\nexport class ConfirmQuickComponent implements OnInit {\n  animation = false;\n  messageContent='';\n  type=''\n  icon='';\n  constructor(\n    private dialog: DialogRef,\n    public dialogConfig:DialogConfig\n  ) {\n    this.messageContent=this.dialogConfig.data?.message??'';\n    this.icon = this.dialogConfig.data?.icon ??'';\n    this.type= this.dialogConfig.data?.type ?? '';\n  }\n\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n  }\n\n  delete(deleteFlag: boolean) {\n    this.dialog.close(deleteFlag);\n  }\n\n}\n","<div class=\"alert-dialog vx-d-flex vx-align-center vx-justify-center\" [class.animate]=\"animation\">\n  <div class=\"alert-dialog-container\">\n    <div class=\"alert-dialog-body\">\n      <div class=\"alert-dialog-icon vx-d-flex vx-align-center vx-justify-center\" >\n        <i class=\"icons\" [ngClass]=\"\n        {'delete': type==='DELETE',\n        'activate': type==='ACTIVATE',\n        'deactivate': type==='DEACTIVATE',\n        'make-key': type==='MAKE_KEY_RESPONSIBILITY',\n        'remove-key': type==='REMOVE_KEY_RESPONSIBILITY'}\"\n        [innerHTML]=\"icon\">&#xe923;</i>\n      </div>\n      <p class=\"vx-fs-15 vx-paragraph-txt vx-m-0 vx-text-center\" [innerHTML]=\"messageContent\"></p>\n    </div>\n    <div class=\"alert-dialog-footer vx-d-flex vx-align-center vx-justify-between vx-p-3\">\n      <p class=\"vx-fs-12 vx-lable-txt vx-m-0\">Are you sure you would like to proceed?</p>\n      <div class=\"vx-d-flex vx-align-center\">\n        <button class=\"no-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"delete(false)\">No</button>\n        <button class=\"yes-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"delete(true)\">Yes</button>\n      </div>\n    </div>\n  </div>\n</div>\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { BehaviorSubject, Observable, catchError, of, map } from 'rxjs';\nimport { Configurations } from '../../../configuration';\n@Injectable({\n  providedIn: 'root',\n})\nexport class OrganizationUserService {\n  private organizationUsers: BehaviorSubject<any[]> = new BehaviorSubject<\n    any[]\n  >([]);\n  env: any;\n\n  constructor(\n    private http: HttpClient,\n    @Optional() config?: Configurations\n  ) {\n    if (config) {\n      this.env = config.envConfig;\n    }\n  }\n\n  private getAllOrgUser() {\n    return this.http\n      .get<any[]>(this.env.organizationGet + 'getAllUsers&type=all')\n      .pipe(\n        map((res) => this.setOrganizationUsers(res)),\n        catchError((error) => {\n          console.error('Error fetching organization users:', error);\n          return of([]);\n        })\n      );\n  }\n\n  private setOrganizationUsers(data: any[]) {\n    const ListOfUsers = this.dataMap(data);\n    this.organizationUsers.next(ListOfUsers);\n    return ListOfUsers;\n  }\n\n  public getOrganizationUsers() {\n    const currentUsers = this.organizationUsers.getValue();\n    if (currentUsers && currentUsers.length) {\n      return of(this.organizationUsers.value);\n    }\n    return this.getAllOrgUser();\n  }\n\n  private dataMap(data: any[]): any[] {\n    return data.map((user) => ({\n      ...user,\n      employee_id: user?.member_id,\n      employee_pic: user?.member_pic,\n      employee_name: user?.member_name,\n      employee_email: user?.member_email,\n      employee_short_name: user?.short_name,\n      my_member_id: user?.member_id,\n      user_id: user?.member_id,\n    }));\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'search',\n    standalone: false\n})\nexport class SearchPipe implements PipeTransform {\n  transform(items: any[], ...args: any[]): any[] {\n    let searchText = args[0];\n    const searchKey = args[1];\n    if (!items) {\n      return [];\n    }\n    if (!searchText) {\n      return items;\n    }\n    searchText = searchText.toLowerCase();\n    if(items?.length){\n    return items.filter((it: any) => {\n      if(!searchKey){\n         return JSON.stringify(it).toLowerCase().includes(searchText);\n      }\n      else if(searchKey){\n\n        return it[searchKey]?.toString()?.toLowerCase().indexOf(searchText) > -1;\n      }\n      else {\n        return\n      }\n\n    });\n  }else{\n     return [];\n  }\n  }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { AuthorizerService } from '@vcomply/authorizer';\nimport { DialogRef } from '../../../../ui-elements/ui-dialog/ui-dialog-ref';\nimport { DialogConfig } from '../../../../ui-elements/ui-dialog/ui-dialog-config';\nimport { ApiService } from '../../../services/api.service';\nimport { SnackBarService } from '../../../../ui-elements/snack-bar/snack-bar.service';\nimport { OrganizationUserService } from '../../../services/organization-user.service';\n\n@Component({\n    selector: 'handover-transfer',\n    templateUrl: './handover-transfer.component.html',\n    styleUrls: ['./handover-transfer.component.less'],\n    standalone: false\n})\nexport class HandoverTransferComponent implements OnInit {\n  animation = false;\n  messageContent = '';\n  type = '';\n  icon = '';\n  loader: boolean = false;\n  myId: number = 0;\n  responsibilityDetails: any;\n  itemListArray: Array<any> = [];\n  selectedData: any;\n  searchText: string = '';\n  minDate: any = new Date();\n  delegateDate: any;\n  validation: any = [];\n  orgDetails: any;\n\n  constructor(\n    private dialog: DialogRef,\n    public dialogConfig: DialogConfig,\n    private apiService: ApiService,\n    private snackBarService: SnackBarService,\n    private authorizer: AuthorizerService,\n    private OrganizationUserService: OrganizationUserService\n  ) {\n    this.messageContent = this.dialogConfig.data?.message ?? '';\n    this.icon = this.dialogConfig.data?.icon ?? '';\n    this.type = this.dialogConfig.data?.type ?? '';\n    this.responsibilityDetails = this.dialogConfig.data.responsibility ?? {};\n    this.orgDetails = this.dialogConfig?.data?.orgDetails;\n  }\n\n  ngOnInit(): void {\n    this.animation = true;\n    this.myId = this.authorizer.getUserId() ?? 0;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n    if (this.type.toUpperCase() === 'HANDOVER') {\n      this.getMemberList();\n    } else {\n      this.getEmployeeList();\n    }\n  }\n\n  delete(deleteFlag: boolean) {\n    this.dialog.close(deleteFlag);\n  }\n\n  showOption = false;\n  selectedUser: any = {};\n  data: any = { userList: [1, 1, 1, 1] };\n\n  closeDialog(data?: any) {\n    this.dialog.close(data);\n  }\n\n  selectedOption(event: any) {\n    this.selectedData = event;\n  }\n\n  showErrorSnackbar() {\n    this.snackBarService.show(\n      \"Oops! Something went wrong and we were unable to complete this action. Let's give it another try, shall we?\",\n      'alert'\n    );\n  }\n\n  /**\n   * It gets a list of members from the API and then sets the user for handover.\n   */\n  getMemberList() {\n    let url = 'organization/?mode=organizationUsers';\n    this.apiCalled(url, this.setUserForHandover.bind(this));\n  }\n\n  apiCalled(url: string, setUser: any) {\n    this.loader = true;\n    this.apiService.get(url).subscribe({\n      next: (res: any) => {\n        setUser(res);\n        this.loader = false;\n      },\n      error: () => {\n        this.showErrorSnackbar();\n      },\n    });\n  }\n\n  getEmployeeList() {\n    this.OrganizationUserService.getOrganizationUsers().subscribe({\n      next: (res: any) => {\n        if (this.type === 'DELEGATE') {\n          this.setUserForDelegate(res);\n        } else {\n          this.setUserForTransfer(res);\n        }\n      },\n      error: () => {\n        this.showErrorSnackbar();\n      },\n    });\n  }\n\n  /**\n   * The function takes an array of objects, filters out the objects that don't meet the criteria, and\n   * returns a new array of objects that do meet the criteria.\n   * @param {any} handoverList - Array of objects\n   */\n  setUserForHandover(handoverList: any) {\n    const ccEmail = this.responsibilityDetails?.cc.map((ele: any) => ele.email);\n    const failureCCEmail = this.responsibilityDetails?.failure_cc.map(\n      (ele: any) => ele.email\n    );\n    this.itemListArray = handoverList.filter((mem: any) => {\n      if (\n        this.responsibilityDetails?.AssignById !== mem.member_id &&\n        mem.member_id !== this.myId &&\n        !ccEmail.includes(mem.member_email) &&\n        !failureCCEmail.includes(mem.member_email)\n      ) {\n        mem['item_name'] = mem.member_name;\n        mem['item_email'] = mem.member_email;\n        mem['item_id'] = mem.member_id;\n        return mem;\n      }\n    });\n  }\n\n  /**\n   * The function takes in an array of objects, and returns a filtered array of objects.\n   *\n   * The function is called like this:\n   *\n   * this.setUserForTransfer(this.transferList);\n   * The function is called\n   * @param {any} transferList - any = [{employee_email: \"test@test.com\", employee_name: \"test\",\n   * employee_id: \"123\"}, {employee_email: \"test1@test.com\", employee_name: \"test1\", employee_id: \"1234\"}\n   */\n\n  setUserForTransfer(transferList: any) {\n    const mailArr: Array<any> = [];\n    let overseerData = this.responsibilityDetails?.cc.map(\n      (ele: any) => ele.email\n    );\n    overseerData = overseerData.concat(\n      this.responsibilityDetails?.failure_cc.map((ele: any) => ele.email)\n    );\n    let responsibilityReviewerId = this.responsibilityDetails?.ReviewersDetails\n      ?.level1\n      ? this.responsibilityDetails?.ReviewersDetails?.level1?.reviewers?.map(\n          (ele: any) => ele?.member_email\n        )\n      : [];\n\n    if (this.responsibilityDetails.EntrustedToMembers.length > 0) {\n      this.responsibilityDetails.EntrustedToMembers.forEach((mems: any) => {\n        mailArr.push(mems.member_email);\n      });\n      transferList = transferList.filter(\n        (emp: any) => !mailArr.includes(emp.employee_email)\n      );\n    } else {\n      transferList = transferList.filter(\n        (emp: any) =>\n          this.responsibilityDetails.AssignToEmail !== emp.employee_email\n      );\n    }\n    this.itemListArray = transferList.filter((emp: any) => {\n      if (\n        !overseerData.includes(emp.employee_email) &&\n        !responsibilityReviewerId.includes(emp.employee_email)\n      ) {\n        emp['item_name'] = emp.employee_name;\n        emp['item_email'] = emp.employee_email;\n        emp['item_id'] = emp.employee_id;\n        return emp;\n      }\n    });\n  }\n\n  setUserForDelegate(delegateList: any) {\n    let responsibilityReviewerId = this.responsibilityDetails?.ReviewersDetails\n      ?.level1\n      ? this.responsibilityDetails?.ReviewersDetails?.level1?.reviewers?.map(\n          (ele: any) => ele?.member_email\n        )\n      : [];\n    let overseerData = this.responsibilityDetails?.cc?.map(\n      (ele: any) => ele?.email\n    );\n    overseerData = overseerData?.concat(\n      this.responsibilityDetails?.failure_cc?.map((ele: any) => ele?.email)\n    );\n    delegateList = delegateList?.filter(\n      (user: any) =>\n        user?.my_member_id !== this.myId &&\n        !responsibilityReviewerId?.includes(user?.member_email) &&\n        !overseerData?.includes(user?.member_email) &&\n        user?.my_member_id > 0\n    );\n    this.itemListArray = delegateList?.map((user: any) => {\n      user['item_id'] = user?.my_member_id;\n      user['item_name'] = user?.member_name;\n      user['item_email'] = user?.employee_email;\n      return user;\n    });\n    this.data = {\n      msg: 'This action will <strong>Delegate</strong> this responsibility.',\n      type: 'delegate',\n      action: 'delegate',\n      icon: '&#xea7a;',\n      usersList: delegateList ?? [],\n      minDate: this.getToday(this.responsibilityDetails.FailedDateTimestamp),\n      isLoader: false,\n    };\n  }\n\n  getToday(timestamp: any) {\n    const currentDate = new Date().getTime();\n    const failedTimeStamp =\n      timestamp === 0 ? new Date().getTime() / 1000 : timestamp;\n    const delegateTimeStamp =\n      failedTimeStamp * 1000 > currentDate ? timestamp * 1000 : currentDate;\n    return delegateTimeStamp;\n  }\n\n  getMinDate() {\n    return new Date(this.dialogConfig.data?.minDate ?? 0)\n      .toISOString()\n      .split('T')[0];\n  }\n\n  setNewDelegateDate(event: any) {\n    this.delegateDate = event.value;\n    this.selectedData['until'] = this.delegateDate;\n    this.validation.push(this.selectedData);\n  }\n\n  get isYesDisabled() {\n    if (this.dialogConfig.data.type === 'DELEGATE') {\n      return this.selectedData?.until && this.selectedData?.item_id\n        ? false\n        : true;\n    }\n    return this.selectedData?.item_id ? false : true;\n  }\n}\n","<div class=\"alert-dialog vx-d-flex vx-align-center vx-justify-center\" [class.animate]=\"animation\">\n    <div class=\"alert-dialog-container\">\n      <div class=\"alert-dialog-body\">\n        <div class=\"alert-dialog-icon vx-d-flex vx-align-center vx-justify-center\" >\n          <i class=\"icons vx-fs-24\" [ngClass]=\"\n          {'delete': type==='DELETE',\n          'activate': type==='ACTIVATE',\n          'deactivate': type==='DEACTIVATE',\n          'make-key': type==='MAKE_KEY_RESPONSIBILITY',\n          'remove-key': type==='REMOVE_KEY_RESPONSIBILITY'}\"\n          [innerHTML]=\"icon\">&#xe923;</i>\n        </div>\n        <div class=\"vx-fs-15 vx-paragraph-txt vx-mb-4 vx-text-center\" [innerHTML]=\"messageContent\"></div>\n        <!-- Dropdown popover -->\n        <div class=\"custom-select vx-d-flex vx-align-center vx-justify-center\">\n          <div *ngIf=\"type !== 'DELEGATE'\" class=\"vx-fs-12 vx-paragraph-txt vx-mr-2\">to</div>\n            <div *ngIf=\"!loader\" class=\"custom-select-box vx-fs-12 vx-paragraph-txt vx-p-2 vx-d-flex vx-align-center vx-justify-between\" [class.vx-label-txt]=\"selectedData\" appPopover (click)=\"formDropDown.popover()\" placement=\"left\">\n              {{selectedData ? selectedData.item_name: 'Select User'}}\n              <i class=\"icons vx-fs-12 vx-paragraph-txt\">&#xe9e8;</i>\n            </div>\n            <div *ngIf=\"loader\" class=\"custom-select-box vx-fs-12 vx-paragraph-txt vx-p-2 vx-d-flex vx-align-center vx-justify-between\" [class.vx-label-txt]=\"selectedData\"  placement=\"left\">\n              Loading..\n              <i class=\"icons vx-fs-12 vx-paragraph-txt\">&#xe9e8;</i>\n            </div>\n            <app-popover #formDropDown [dontCloseonClick]=\"true\">\n              <div class=\"action-list\" style=\"width: 240px;\">\n                <ul class=\"action-item\">\n                  <li class=\"search-field\">\n                    <input class=\"search\" [(ngModel)]=\"searchText\" type=\"text\" placeholder=\"Search...\" />\n                  </li>\n                  <ng-container *ngIf=\"(itemListArray | search: searchText) as list\">\n                    <li *ngIf=\"list?.length  === 0\" class=\"vx-fs-13 vx-label-txt vx-p-2\">No match found.</li>\n                    <li *ngFor=\"let items of list;\"><button (click)=\"selectedOption(items);formDropDown.closePopover('top')\">{{ items?.item_name }}</button></li>\n                  </ng-container>\n\n                </ul>\n              </div>\n            </app-popover>\n        </div>\n        <div *ngIf=\"type === 'DELEGATE'\" class=\"calendar-area\">\n          <input matInput [matDatepicker]=\"picker\" [min]=\"getMinDate()\" placeholder=\"Delegate until\" class=\"datePicker\" (dateChange)=\"setNewDelegateDate($event)\" />\n          <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n          <mat-datepicker #picker></mat-datepicker>\n        </div>\n    </div>\n    <div class=\"alert-dialog-footer vx-d-flex vx-align-center vx-justify-between vx-p-3\">\n      <p class=\"vx-fs-12 vx-lable-txt vx-m-0\">Are you sure you would like to proceed?</p>\n      <div  class=\"vx-d-flex vx-align-center\">\n        <button (click)=\"closeDialog()\" class=\"no-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\" >No</button>\n        <button (click)=\"closeDialog(selectedData)\" [class.disabled]=\"isYesDisabled\" class=\"yes-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\" >Yes</button>\n      </div>\n    </div>\n  </div>\n  </div>\n","import { Optional, Pipe, PipeTransform } from '@angular/core';\nimport { Configurations } from '../../../configuration';\n\n@Pipe({\n    name: 'profile',\n    standalone: false\n})\nexport class ProfilePipe implements PipeTransform {\n\n  environment: any = ''\n\n   constructor(\n    @Optional() config?: Configurations\n   ) {\n    if(config) this.environment = config.envConfig;\n   }\n  transform(value: any): string {\n    return `${this.environment.s3Url}${this.environment.s3Bucket}/profile_pic/thumb/${value}`;\n  }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { DialogRef } from '../../../../ui-elements/ui-dialog/ui-dialog-ref';\nimport { DialogConfig } from '../../../../ui-elements/ui-dialog/ui-dialog-config';\n\n@Component({\n    selector: 'delete-parent-quick-resp',\n    templateUrl: './delete-parent-resp.component.html',\n    styleUrls: ['./delete-parent-resp.component.less'],\n    standalone: false\n})\nexport class DeleteParentRespQuickComponent implements OnInit {\n  animate = false;\n\n  dependentResponsibilities: Array<any> = [];\n  responsibility: any;\n  constructor(private dialog: DialogRef, public dialogConfig: DialogConfig) {\n    this.dependentResponsibilities =\n      this.dialogConfig.data?.dependentResponsibility ?? [];\n    this.responsibility = this.dialogConfig.data?.responsibility ?? [];\n  }\n\n  ngOnInit(): void {\n    this.animate = true;\n    setTimeout(() => {\n      this.animate = false;\n    }, 1000);\n  }\n\n  activate(deleteFlag: boolean) {\n    this.dialog.close(deleteFlag);\n  }\n}\n","<div class=\"delete-parent-resp-dialog\">\n    <div class=\"delete-parent-resp-dialog-container\" [class.animation]=\"animate\">\n      <div class=\"delete-parent-resp-dialog-body\">\n        <div class=\"delete-parent-resp-dialog-icon vx-d-flex vx-align-center vx-justify-center\">\n          <i class=\"icons vx-fs-24\">&#xe914;</i>\n        </div>\n        <div class=\"vx-fs-15 vx-paragraph-txt vx-mb-2 vx-text-center\"><strong class=\"vx-fw-600\">1</strong> out of <strong class=\"vx-fw-600\">1</strong> responsibility was not deleted.</div>\n        <div class=\"responsibility-name vx-fs-13 vx-label-txt vx-pl-4 vx-pr-4 vx-text-center\" [appTooltip]=\"responsibility?.ReportName\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{responsibility?.ReportName}}</div>\n        <div class=\"vx-fs-13 vx-fw-500 vx-paragraph-txt vx-text-center vx-mt-4 vx-mb-4\">This responsibility is associated to the<br>following dependent responsibilities:</div>\n        <div class=\"responsibility-list vx-pr-2 vx-pl-4\">\n            <div class=\"responsibility-list-inner vx-pr-2\">\n                <div class=\"table-row\" *ngFor=\"let data of dependentResponsibilities;let i = index;\">\n                    <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n                        <div class=\"sr-no\" [appTooltip]=\"'1'\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{i + 1}}</div>\n                    </div>\n                    <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center name\">\n                        <div class=\"vx-avatar-group qv-avatar vx-mr-2\">\n                            <div class=\"vx-avatar md\">\n                                <span *ngIf=\"!data?.member_pic\" class=\"blue\" [appTooltip]=\"data?.AssignBy\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{data?.member_short_name}}</span>\n                                <img *ngIf=\"data?.member_pic\" [src]=\"data?.member_pic | profile\" alt=\"\" [appTooltip]=\"data?.AssignBy\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n                            </div>\n                            <div class=\"vx-avatar md\">\n                                <span *ngIf=\"!data?.employee_pic\" class=\"green\" [appTooltip]=\"data?.AssignTo\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{data?.employee_short_name}}</span>\n                                <img *ngIf=\"data?.employee_pic\" [src]=\"data?.employee_pic | profile\" alt=\"\" [appTooltip]=\"data?.AssignTo\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n                            </div>\n                        </div>\n                        <div class=\"vx-d-flex vx-align-center\">\n                            <i class=\"icons star vx-fs-10 vx-paragraph-txt vx-mr-2\" [class.yellow]=\"data?.is_key_compliance\">&#xea70;</i>\n                            <div class=\"vx-d-block\">\n                                <div class=\"vx-d-flex vx-align-center\">\n                                    <div class=\"id vx-fs-10 vx-fw-500 vx-txt-blue vx-mr-1\">{{data?.ControlId}}</div>\n                                    <div class=\"resp-name vx-fs-13 vx-label-txt\" [appTooltip]=\"data?.ReportName\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{data?.ReportName}}</div>\n                                </div>\n                                <div class=\"frequency vx-fs-11 vx-paragraph-txt\"><span class=\"vx-fs-10 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-1\">Frequency:</span>{{data?.ReportFrequency}}</div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <div class=\"delete-label vx-fs-12 vx-txt-white vx-pl-4 vx-lh-8 vx-d-flex vx-align-center\"><i class=\"icons vx-fs-16 vx-mr-2\">&#xe914;</i> Deleting this responsibility will also delete the dependent responsibilities.</div>\n      </div>\n      <div class=\"delete-parent-resp-dialog-footer vx-d-flex vx-align-center vx-justify-between vx-p-3\">\n        <p class=\"vx-fs-12 vx-lable-txt vx-m-0\">Are you sure you would like to proceed?</p>\n        <div class=\"vx-d-flex vx-align-center\">\n          <button class=\"no-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"activate(false)\">No</button>\n          <button class=\"yes-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"activate(true)\">Yes</button>\n        </div>\n      </div>\n    </div>\n</div>\n","const CDN_URL = 'https://cdn.v-comply.com';\n\nconst BASE_URL: string = CDN_URL;\n\nexport const ASSETS = {\n  unauthorized: `${BASE_URL}/application/images/unauthorized-image.svg`,\n  vIcon: `${BASE_URL}/application/images/v-icon.svg`,\n  whiteVicon: `${BASE_URL}/logo/prod/v-logo.svg`,\n  enterIcon: `${BASE_URL}/application/images/enter-icon.svg`,\n  qrCode: `${BASE_URL}/libraries/responsibility-quickview/qr-code.svg`,\n  upload: `${BASE_URL}/libraries/responsibility-quickview/upload.svg`,\n  newActivitylogNodata: `${BASE_URL}/libraries/responsibility-quickview/new-activitylog-nodata.svg`,\n  filesFolders: `${BASE_URL}/libraries/responsibility-quickview/files-folders.svg`,\n  multipleUser: `${BASE_URL}/libraries/responsibility-quickview/multiple-user.svg`,\n};\n","import { Injector, Type, InjectionToken } from \"@angular/core\";\n\nexport class DialogInjector implements Injector {\n  constructor(\n    private parentDialogInjector: Injector,\n    private dialogAdditionalTokens: WeakMap<any, any>\n  ) {}\n\n  get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T): T;\n  get(token: any, notFoundValue?: any) {\n    const value = this.dialogAdditionalTokens.get(token);\n    if (value) {\n      return value;\n    }\n    return this.parentDialogInjector.get<any>(token, notFoundValue);\n  }\n}","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n    selector: '[appInsertion]',\n    standalone: false\n})\nexport class InsertionDirective {\n  constructor(public viewContainerRef: ViewContainerRef) {}\n}\n","import { Component, Type, ComponentFactoryResolver, ViewChild, OnDestroy, ComponentRef, AfterViewInit, ChangeDetectorRef, OnInit, EnvironmentInjector } from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\nimport { NavigationEnd, NavigationError, NavigationStart, Router, ROUTER_CONFIGURATION } from '@angular/router';\nimport { DialogConfig } from './ui-dialog-config';\nimport { DialogRef } from './ui-dialog-ref';\nimport { InsertionDirective } from './ui-insertion.directive';\n\n@Component({\n    selector: 'ui-dialog',\n    templateUrl: './ui-dialog.component.html',\n    styleUrls: ['./ui-dialog.component.css'],\n    standalone: false\n})\nexport class DialogComponent implements AfterViewInit, OnDestroy, OnInit {\n  componentRef!: ComponentRef<any>;\n  position: any;\n  background: any;\n  @ViewChild(InsertionDirective, { static: true })\n  insertionPoint!: InsertionDirective;\n  animation = true;\n  private childActionSubscription: any;\n\n  private readonly onDialogClose = new Subject<any>();\n  public onClose = this.onDialogClose.asObservable();\n\n  childComponentType!: Type<any>;\n\n  constructor(\n    private componentFactoryResolver: ComponentFactoryResolver,\n    private cd: ChangeDetectorRef,\n    private dialogRef: DialogRef,\n    public config: DialogConfig,\n    private router: Router,\n    private environmentInjector: EnvironmentInjector\n  ) {}\n  ngOnInit() {\n    this.position = this.config.position;\n    this.background = this.config.background;\n    document.body.style.overflow = 'hidden';\n    setTimeout(() => {\n      this.animation = false;\n    }, 200);\n    this.routeAction();\n  }\n\n  routeAction() {\n    this.router.events.subscribe((event: any) => {\n      if (event instanceof NavigationStart) {\n        // Show loading indicator\n      }\n      if (event instanceof NavigationEnd) {\n        // Hide loading indicator\n        this.dialogRef.close();\n      }\n      if (event instanceof NavigationError) {\n        // Hide loading indicator\n        // Present error to user\n      }\n    });\n  }\n  ngAfterViewInit() {\n    this.loadChildComponent(this.childComponentType);\n    this.cd.detectChanges();\n  }\n\n  onOverlayClicked(evt: MouseEvent) {\n  }\n\n  onDialogClicked(evt: MouseEvent) {\n    evt.stopPropagation();\n  }\n\n  loadChildComponent(componentType: Type<any>) {\n    const viewContainerRef = this.insertionPoint.viewContainerRef;\n    viewContainerRef.clear();\n\n    this.componentRef = viewContainerRef.createComponent(componentType, {\n      injector: viewContainerRef.injector,\n      environmentInjector: this.environmentInjector,\n    });\n\n    if (this.config?.data && typeof this.config.data === 'object') {\n      Object.assign(this.componentRef.instance, this.config.data);\n      this.componentRef.instance.ngOnChanges?.();\n    }\n\n    if (this.componentRef.instance?.actionData?.subscribe) {\n      this.childActionSubscription = this.componentRef.instance.actionData.subscribe(\n        (event: any) => {\n          this.dialogRef.emitEvent(event);\n          this.close();\n        }\n      );\n    }\n\n    this.componentRef.changeDetectorRef.detectChanges();\n  }\n\n  ngOnDestroy() {\n    this.childActionSubscription?.unsubscribe?.();\n    if (this.componentRef) {\n      this.componentRef.destroy();\n    }\n  }\n\n  close() {\n    this.onDialogClose.next(true);\n    document.body.style.overflow = 'auto';\n  }\n}\n","<div\n  class=\"responsibility-overlay\"\n  (click)=\"onOverlayClicked($event)\"\n  [ngClass]=\"{\n    top: position === 'TOP',\n    right: position === 'RIGHT',\n    bottom: position === 'BOTTOM',\n    left: position === 'LEFT',\n    center: position === 'CENTER',\n    black: background === 'black'\n  }\"\n>\n  <div\n    class=\"dialog\"\n    [class.animate]=\"animation\"\n    (click)=\"onDialogClicked($event)\"\n    [ngClass]=\"{\n      top: position === 'TOP',\n      right: position === 'RIGHT',\n      bottom: position === 'BOTTOM',\n      left: position === 'LEFT',\n      center: position === 'CENTER'\n    }\"\n  >\n    <ng-template appInsertion></ng-template>\n  </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DialogRef } from './ui-dialog-ref';\nimport { DialogComponent } from './ui-dialog.component';\nimport { InsertionDirective } from './ui-insertion.directive';\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [DialogComponent, InsertionDirective],\n  providers: [DialogRef],\n})\nexport class DialogModule { }\n","import { Injectable, ComponentFactoryResolver, ApplicationRef, Injector, Type, EmbeddedViewRef, ComponentRef } from '@angular/core';\nimport { DialogConfig } from './ui-dialog-config';\nimport { DialogInjector } from './ui-dialog-injector';\nimport { DialogRef } from './ui-dialog-ref';\nimport { DialogComponent } from './ui-dialog.component';\nimport { DialogModule } from './ui-dialog.module';\n\n\n@Injectable({\n  providedIn: DialogModule,\n})\nexport class DialogDataService {\n  dialogComponentRef: ComponentRef<DialogComponent>[] = [];\n  constructor(private componentFactoryResolver: ComponentFactoryResolver, private appRef: ApplicationRef, private injector: Injector) { }\n\n  public open(componentType: Type<any>, config: DialogConfig) {\n    const dialogRef = this.appendDialogComponentToBody(config);\n    this.dialogComponentRef[this.dialogComponentRef?.length - 1].instance.childComponentType = componentType;\n    return dialogRef\n  }\n\n  private appendDialogComponentToBody(config: DialogConfig) {\n    const map = new WeakMap();\n    map.set(DialogConfig, config);\n\n    const dialogRef = new DialogRef();\n    map.set(DialogRef, dialogRef);\n\n    const sub = dialogRef.afterClosed.subscribe(() => {\n      this.removeDialogComponentFromBody();\n      sub.unsubscribe();\n    });\n\n    const componentFactory = this.componentFactoryResolver.resolveComponentFactory(DialogComponent);\n    const componentRef = componentFactory.create(new DialogInjector(this.injector, map));\n\n    this.appRef.attachView(componentRef.hostView);\n\n\n\n    const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n    document.body.appendChild(domElem);\n\n    this.dialogComponentRef.push(componentRef)\n    this.dialogComponentRef[this.dialogComponentRef?.length - 1].instance.onClose.subscribe(() => {\n      this.removeDialogComponentFromBody();\n    });\n\n    return dialogRef;\n  }\n\n  private removeDialogComponentFromBody() {\n    this.appRef.detachView(this.dialogComponentRef[this.dialogComponentRef?.length - 1].hostView);\n    this.dialogComponentRef.pop()?.destroy();\n\n\n  }\n\n}\n","import { Injectable } from '@angular/core';\nimport { TabModal } from '../../../../shared/interfaces/overview-modal';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ContainerService {\n  TAB_LIST: Array<TabModal> = [\n    {\n      id: 'OVERVIEW',\n      name: 'overview',\n    },\n    {\n      id: 'COMPLETION',\n      name: 'Completion History',\n    },\n    {\n      id: 'FILES_FOLDERS',\n      name: 'Files & Folders',\n    },\n  ];\n\n  constructor() {}\n}\n","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'text-loader',\n    templateUrl: './text-loader.component.html',\n    styleUrls: ['./text-loader.component.less'],\n    standalone: false\n})\nexport class TextLoaderComponent {}","<div class=\"shimmer-loader\">\n  <div *ngFor=\"let i of [1,1]\" class=\"shimmer-text\"></div>\n</div> ","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ToolTipDirective } from './tooltip.directive';\n\n@NgModule({\n  declarations: [ToolTipDirective],\n  imports: [CommonModule],\n  exports: [ToolTipDirective],\n})\nexport class TooltipModule {}\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TooltipModule } from '../../../ui-elements/tooltip/tooltip.module';\nimport { UserProfile } from '../../interfaces/users-modal';\n\n@Component({\n    selector: 'avatar',\n    templateUrl: './avatar.component.html',\n    styleUrls: ['./avatar.component.less'],\n    imports: [TooltipModule, CommonModule],\n    inputs: ['avatarColor', 'sizeClass', 'userDetails']\n})\nexport class AvatarComponent {\n  avatarColor: 'blue' | 'green' = 'blue';\n  sizeClass: 'md' | 'sm' | 'lg' = 'md';\n  userDetails: UserProfile = {\n    name: '',\n    email: '',\n    shortName: '',\n    imageUrl: '',\n  };\n}\n","<div\n  class=\"vx-avatar\"\n  [ngClass]=\"sizeClass\"\n  [appTooltip]=\"userDetails.name\"\n  placement=\"bottom-left\"\n  delay=\"0\"\n  type=\"black\"\n  [tooltipMandatory]=\"true\"\n>\n  <span *ngIf=\"!userDetails.imageUrl\" [ngClass]=\"avatarColor\">{{\n    userDetails.shortName\n  }}</span>\n  <img *ngIf=\"userDetails.imageUrl\" [src]=\"userDetails.imageUrl\" />\n</div>\n","import { Component, Optional } from '@angular/core';\nimport { Configurations } from '../../../../configuration';\nimport { ASSETS } from '../../../shared/constants/assets.constants';\n\n@Component({\n    selector: 'vui-loader-inline',\n    templateUrl: './v-loader-inline.component.html',\n    styleUrls: ['./v-loader-inline.component.less'],\n    standalone: false\n})\nexport class VLoaderInlineComponent {\n  vLoader: any;\n  ASSETS: any = ASSETS;\n\n  public env!: any;\n\n  constructor(@Optional() config?: Configurations) {\n    if (config) {\n      this.env = config.envConfig;\n    }\n    this.vLoader = this.env.vLoader;\n  }\n\n}\n","<div class=\"v-loader-inline-loader\">\n  <img [src]=\"ASSETS.vIcon\" alt=\"\" />\n  <div class=\"loader-index\">\n    <div class=\"loader-index-circle\"></div>\n  </div>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { DialogConfig } from '../../ui-dialog/ui-dialog-config';\nimport { DialogRef } from '../../ui-dialog/ui-dialog-ref';\n\n@Component({\n    selector: 'app-dialog',\n    templateUrl: './dialog.component.html',\n    styleUrls: ['./dialog.component.less'],\n    standalone: false\n})\nexport class DialogBoxComponent implements OnInit {\n\n  animation = false;\n  icon: string = '&#xe923;';\n  className: string = 'delete'\n  message: string = 'This action will <strong>delete</strong> this comment.';\n  constructor(\n    private dialog: DialogRef,\n    public dialogConfig:DialogConfig\n  ) {\n    const dialogData = dialogConfig.data;\n    this.icon = dialogData.icon ?? this.icon;\n    this.className = dialogData.className ?? this.className;\n    this.message =  dialogData.message?? this.message;\n   }\n\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n  }\n\n  onClick(deleteFlag: boolean) {\n    this.dialog.close(deleteFlag);\n  }\n\n}\n","<div class=\"alert-dialog vx-d-flex vx-align-center vx-justify-center\" [class.animate]=\"animation\">\n    <div class=\"alert-dialog-container\">\n      <div class=\"alert-dialog-body\">\n        <div class=\"alert-dialog-icon vx-d-flex vx-align-center vx-justify-center\">\n          <!-- Delete icon -->\n          <i class=\"icons\" [ngClass]=\"className\" [innerHTML]=\"icon\">&#xe923;</i>\n          <!-- Duplicate icon -->\n          <i *ngIf=\"false\" class=\"icons duplicate\">&#xe9b6;</i>\n          <!-- Deactive icon -->\n          <i *ngIf=\"false\" class=\"icons deactive\">&#xe9d0;</i>\n          <!-- Active icon -->\n          <i *ngIf=\"false\" class=\"icons active\">&#xe93d;</i>\n          <!-- Key Responsibility active icon -->\n          <i *ngIf=\"false\" class=\"icons active-keyRes\">&#xea70;</i>\n          <!-- Key Responsibility deactive icon -->\n          <i *ngIf=\"false\" class=\"icons deactive-keyRes\">&#xea71;</i>\n        </div>\n        <p class=\"vx-fs-15 vx-paragraph-txt vx-m-0 vx-text-center\" [innerHTML]=\"message\"></p>\n      </div>\n      <div class=\"alert-dialog-footer vx-d-flex vx-align-center vx-justify-between vx-p-3\">\n        <p class=\"vx-fs-12 vx-lable-txt vx-m-0\">Are you sure you would like to proceed?</p>\n        <div class=\"vx-d-flex vx-align-center\">\n          <button (click)=\"onClick(false)\" class=\"no-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\">No</button>\n          <button (click)=\"onClick(true)\" class=\"yes-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\">Yes</button>\n        </div>\n      </div>\n    </div>\n  </div>\n","import { Injectable } from '@angular/core';\nimport { CommonService } from './common.service';\nimport { DialogDataService } from '../../ui-elements/ui-dialog/ui-dialog.service';\nimport { DialogBoxComponent } from '../../ui-elements/action-dialog/dialog/dialog.component';\nimport { ApiService } from './api.service';\nimport { PlatformLocation } from '@angular/common';\nimport { SnackBarService } from '../../ui-elements/snack-bar/snack-bar.service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ActionService {\n  constructor(\n    private commonService: CommonService,\n    private dialog: DialogDataService,\n    private apiService: ApiService,\n    private snackBarService: SnackBarService\n  ) {}\n\n  /**\n   * This function generates a list of possible actions based on certain conditions and returns it.\n   * @param {any} reportDetails - It is an object containing details about the report, such as whether\n   * editing is enabled or not.\n   * @param {any} dueDateDetails - The `dueDateDetails` parameter is an object containing details about\n   * a due date, such as whether certain actions are enabled or not.\n   * @returns an array of objects, where each object represents an action that can be taken on a report.\n   * Each object has a `name` property that describes the action and a `callback` property that is a\n   * function to be executed when the action is taken.\n   */\n  loadActionButtons(reportDetails: any, dueDateDetails: any) {\n    const ACTION_LIST: Array<any> = [];\n    const _ID: string = reportDetails?.EncryptedReportId;\n    const dueDateID: string =\n      dueDateDetails?.duedate_object_id ?? dueDateDetails?._id;\n    if (reportDetails.edit_enable) {\n      ACTION_LIST.push({\n        name: 'Delete log',\n        actionClass: 'white-btn vx-txt-red',\n        callback: () => {\n          this.openDelete(_ID, dueDateID);\n        },\n      });\n    }\n    if (dueDateDetails?.accept_enable) {\n      ACTION_LIST.push({\n        name: 'Accept',\n        actionClass: 'white-btn vx-txt-blue',\n        callback: () => {\n          this.openSingleActionPage(_ID, dueDateID, 'accept');\n        },\n      });\n    }\n    if (dueDateDetails?.decline_enable) {\n      ACTION_LIST.push({\n        name: 'Decline',\n        actionClass: 'white-btn vx-txt-blue',\n        callback: () => {\n          this.openSingleActionPage(_ID, dueDateID, 'decline');\n        },\n      });\n    }\n    if (dueDateDetails?.more_details_enable) {\n      ACTION_LIST.push({\n        name: 'Request More Details',\n        actionClass: 'white-btn vx-txt-blue',\n        callback: () => {\n          this.openSingleActionPage(_ID, dueDateID, 'request_more_details');\n        },\n      });\n    }\n    if (dueDateDetails?.Mark_NotComplete_Enable) {\n      ACTION_LIST.push({\n        name: 'Mark As Not Required',\n        actionClass: 'white-btn vx-txt-blue',\n        callback: () => {\n          this.openSingleActionPage(_ID, dueDateID, 'markAsNotRequired');\n        },\n      });\n    }\n    if (dueDateDetails?.needMoreTime_enable) {\n      ACTION_LIST.push({\n        name: 'Need More Time',\n        actionClass: 'white-btn vx-txt-blue',\n        callback: () => {\n          this.openSingleActionPage(_ID, dueDateID, 'need_more_time');\n        },\n      });\n    }\n    if (dueDateDetails?.canNotComply_enable) {\n      ACTION_LIST.push({\n        name: 'Cannot Complete',\n        actionClass: 'white-btn vx-txt-blue',\n        callback: () => {\n          this.openSingleActionPage(_ID, dueDateID, 'can_not_do');\n        },\n      });\n    }\n    // End employees action\n    // Start action button for managers\n    if (dueDateDetails?.redo_enable) {\n      ACTION_LIST.push({\n        name: 'Redo',\n        actionClass: 'white-btn vx-txt-blue',\n        callback: () => {\n          this.openSingleActionPage(_ID, dueDateID, 'redo');\n        },\n      });\n    }\n    if (dueDateDetails?.reject_enable) {\n      ACTION_LIST.push({\n        name: 'Reject',\n        actionClass: 'white-btn vx-txt-blue',\n        callback: () => {\n          this.openSingleActionPage(_ID, dueDateID, 'reject');\n        },\n      });\n    }\n    if (dueDateDetails?.condone_enable) {\n      ACTION_LIST.push({\n        name: 'Condone',\n        actionClass: 'white-btn vx-txt-blue',\n        callback: () => {\n          this.openSingleActionPage(_ID, dueDateID, 'condone');\n        },\n      });\n    }\n    if (dueDateDetails?.Failed_Mark_Complete_Enable) {\n      ACTION_LIST.push({\n        name: 'Mark As Complete',\n        actionClass: 'white-btn vx-txt-blue',\n        callback: () => {\n          this.markAsFailed(dueDateID);\n        },\n      });\n    }\n    if (dueDateDetails?.insist_enable) {\n      ACTION_LIST.push({\n        name: 'Insist',\n        actionClass: 'white-btn vx-txt-blue',\n        callback: () => {\n          this.openSingleActionPage(_ID, dueDateID, 'insist', 'duedateId');\n        },\n      });\n    }\n    if (dueDateDetails?.needMoreTimeAccept_enable) {\n      ACTION_LIST.push({\n        name: 'Accept',\n        actionClass: 'white-btn vx-txt-blue',\n        callback: () => {\n          this.openSingleActionPage(\n            _ID,\n            dueDateID,\n            'need_more_time_accept',\n            'duedateId'\n          );\n        },\n      });\n    }\n    if (dueDateDetails?.needMoreTimeDecline_enable) {\n      ACTION_LIST.push({\n        name: 'Decline',\n        actionClass: 'white-btn vx-txt-blue',\n        callback: () => {\n          this.openSingleActionPage(\n            _ID,\n            dueDateID,\n            'need_more_time_decline',\n            'duedateId'\n          );\n        },\n      });\n    }\n    if (dueDateDetails?.canNotComplyAccept_enable) {\n      ACTION_LIST.push({\n        name: 'Accept',\n        actionClass: 'white-btn vx-txt-blue',\n        callback: () => {\n          this.openSingleActionPage(\n            _ID,\n            dueDateID,\n            'can_not_do_accept',\n            'duedateId'\n          );\n        },\n      });\n    }\n    //phase 2 deployment\n    if (dueDateDetails?.canNotComplyDecline_enable) {\n      ACTION_LIST.push({\n        name: 'Decline',\n        actionClass: 'white-btn vx-txt-blue',\n        callback: () => {\n          this.openSingleActionPage(_ID, dueDateID, 'can_not_do_decline');\n        },\n      });\n    }\n    //phase 2 deployment\n    if (dueDateDetails?.canNotComplyAcceptNewDate_enable) {\n      ACTION_LIST.push({\n        name: 'Accept with new due date',\n        actionClass: 'white-btn vx-txt-blue',\n        callback: () => {\n          this.openSingleActionPage(\n            _ID,\n            dueDateID,\n            'can_not_do_accept_withdate'\n          );\n        },\n      });\n    }\n    //phase 2 deployment\n    if (dueDateDetails?.Reviewer_AddNewDueDate_enable && false) {\n      ACTION_LIST.push({\n        name: 'Add a Review date',\n        actionClass: 'white-btn vx-txt-blue',\n        callback: () => {\n          this.addAReviewDate(dueDateID);\n        },\n      });\n    }\n    //phase 2 deployement\n    if (dueDateDetails?.reinitiate_flag && false) {\n      ACTION_LIST.push({\n        name: 'Reinitiate Review',\n        actionClass: 'white-btn vx-txt-blue',\n        callback: () => {\n          this.onRenitiateReview(dueDateID);\n        },\n      });\n    }\n    if (dueDateDetails?.done_enable) {\n      ACTION_LIST.push({\n        name: 'Start',\n        actionClass: 'blue-btn vx-txt-white',\n        callback: () => {\n          this.openSingleActionPage(_ID, dueDateID, 'done', 'duedateId');\n        },\n      });\n    }\n    if (dueDateDetails?.ResumeProgressEnable) {\n      ACTION_LIST.push({\n        name: 'Resume Progress',\n        actionClass: 'blue-btn vx-txt-white',\n        callback: () => {\n          this.openSingleActionPage(_ID, dueDateID, 'done', 'duedateId');\n        },\n      });\n    }\n    if (dueDateDetails?.ViewProgressEnable) {\n      ACTION_LIST.push({\n        name: 'View Progress',\n        actionClass: 'blue-btn vx-txt-white',\n        callback: () => {\n          this.openSingleActionPage(_ID, dueDateID, 'readonly', 'duedateId');\n        },\n      });\n    }\n    return ACTION_LIST;\n  }\n\n  /**\n   * This function opens a dialog box to confirm the deletion of a log and then sends a delete request to\n   * the server.\n   * @param {string} _id - The _id parameter is a string that represents the ID of a report that is being\n   * deleted.\n   * @param {string} dueDateId - The `dueDateId` parameter is an identifier for a specific due date that\n   * is associated with a compliance report. It is used in the URL to specify which due date should be\n   * deleted when the `delete` method is called.\n   */\n  openDelete(_id: string, dueDateId: string) {\n    let ref = this.dialog\n      .open(DialogBoxComponent, {\n        data: {\n          message: `Are you sure you want to <strong>delete </strong> this log?\n\n      .`,\n        },\n        position: 'CENTER',\n        background: 'black',\n      })\n      .afterClosed.subscribe({\n        next: (res: any) => {\n          if (res) {\n            const URL: string =\n              'compliance_delete/?mode=complianceReport/DeleteDuedateById&ReportId=' +\n              _id +\n              '&objId=' +\n              dueDateId;\n            this.apiService.delete(URL).subscribe({\n              next: (res: any) => {\n                this.snackBarService.show(\n                  'The due date has been deleted.',\n                  'success'\n                );\n                this.commonService.refreshResponsibility$.next(_id);\n              },\n              error: (error: any) => {\n                this.commonService.showErrorSnackbar();\n              },\n            });\n          }\n        },\n      });\n  }\n\n  canNotComplyAcceptNewDate() {}\n  //phase 2 deployment\n  canNotComplyDecline() {}\n  openSingleActionPage(\n    _id: string,\n    dueDate_Id: string,\n    mode: string,\n    type: 'reviewduedateId' | 'duedateId' = 'duedateId'\n  ) {\n    this.commonService.goToActionPage(mode, _id, dueDate_Id, type);\n  }\n\n  markAsFailed(_id: string) {}\n\n  addAReviewDate(_id: string) {}\n\n  onRenitiateReview(_id: string) {}\n\n  loadReviewerAction(reportDetails: any, dueDateDetails: any) {\n    //ReInitiate action left out\n    const ACTION_LIST: Array<any> = [];\n    const _ID: string = reportDetails?.EncryptedReportId;\n    const dueDateID: string =\n      dueDateDetails?.reviewer_duedate_object_id ?? dueDateDetails?._id;\n    if (dueDateDetails?.Reviewer_Accept_Enable) {\n      ACTION_LIST.push({\n        name: 'Accept',\n        actionClass: 'white-btn vx-txt-blue',\n        callback: () => {\n          this.openSingleActionPage(\n            _ID,\n            dueDateID,\n            'reviewer_accept',\n            'reviewduedateId'\n          );\n        },\n      });\n    }\n\n    if (dueDateDetails?.Reviewer_Decline_Enable) {\n      ACTION_LIST.push({\n        name: 'Decline',\n        actionClass: 'white-btn vx-txt-blue',\n        callback: () => {\n          this.openSingleActionPage(\n            _ID,\n            dueDateID,\n            'reviewer_decline',\n            'reviewduedateId'\n          );\n        },\n      });\n    }\n\n    if (dueDateDetails?.Reviewer_MoreDetails_enable) {\n      ACTION_LIST.push({\n        name: 'Request More Details',\n        actionClass: 'white-btn vx-txt-blue',\n        callback: () => {\n          this.openSingleActionPage(\n            _ID,\n            dueDateID,\n            'reviewer_request_info',\n            'reviewduedateId'\n          );\n        },\n      });\n    }\n\n    if (dueDateDetails?.Reviewer_NeedMoreTime_Enable) {\n      ACTION_LIST.push({\n        name: 'Need More Time',\n        actionClass: 'white-btn vx-txt-blue',\n        callback: () => {\n          this.openSingleActionPage(\n            _ID,\n            dueDateID,\n            'reviewer_need_more_time',\n            'reviewduedateId'\n          );\n        },\n      });\n    }\n\n    if (dueDateDetails?.Reviewer_CannotComply_Enable) {\n      ACTION_LIST.push({\n        name: 'Cannot Review',\n        actionClass: 'white-btn vx-txt-blue',\n        callback: () => {\n          this.openSingleActionPage(\n            _ID,\n            dueDateID,\n            'reviewer_can_not_do',\n            'reviewduedateId'\n          );\n        },\n      });\n    }\n\n    if (dueDateDetails?.Reviewer_Insist_Enable) {\n      ACTION_LIST.push({\n        name: 'Insist',\n        actionClass: 'white-btn vx-txt-blue',\n        callback: () => {\n          this.openSingleActionPage(\n            _ID,\n            dueDateID,\n            'reviewer_insist',\n            'reviewduedateId'\n          );\n        },\n      });\n    }\n\n    if (dueDateDetails?.Reviewer_ReviewNotRequired_Enable) {\n      ACTION_LIST.push({\n        name: 'Review Not Required',\n        actionClass: 'white-btn vx-txt-blue',\n        callback: () => {\n          this.openSingleActionPage(\n            _ID,\n            dueDateID,\n            'review_not_required',\n            'reviewduedateId'\n          );\n        },\n      });\n    }\n\n    if (dueDateDetails?.Reviewer_MarkAsReviewed_Enable) {\n      ACTION_LIST.push({\n        name: 'Mark as Reviewed',\n        actionClass: 'white-btn vx-txt-blue',\n        callback: () => {\n          this.openSingleActionPage(\n            _ID,\n            dueDateID,\n            'mark_as_reviewed',\n            'reviewduedateId'\n          );\n        },\n      });\n    }\n\n    if (dueDateDetails?.Reviewer_Done_Enable) {\n      ACTION_LIST.push({\n        name: 'Start',\n        actionClass: 'blue-btn vx-txt-white',\n        callback: () => {\n          this.openSingleActionPage(\n            _ID,\n            dueDateID,\n            'reviewer_done',\n            'reviewduedateId'\n          );\n        },\n      });\n    }\n    return ACTION_LIST;\n  }\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n    selector: 'app-no-data',\n    templateUrl: './no-data.component.html',\n    styleUrls: ['./no-data.component.less'],\n    standalone: false\n})\nexport class NoDataComponent {\n  @Input() action!: object;\n  @Input() noDataImage!: string;\n  @Input() noDataText!: string;\n  @Input() noDataButton!: string | any | boolean;\n  @Input() noDataSecButton!: string | boolean;\n  @Input() noDataMultipleButtons!: Array<string>|any;\n  @Input() altText!: string;\n  @Output() buttonAction = new EventEmitter<object>();\n  @Output() clickedButton = new EventEmitter<object>();\n  @Input() smallButton!: boolean;\n  constructor() {}\n\n\n  actionEmitter(button: object) {\n    this.buttonAction.emit(button);\n  }\n\n  getClickedButton(button: any) {\n    this.clickedButton.emit(button);\n  }\n}\n","<div class=\"no-data-wrapper\">\n  <div class=\"no-data-container\">\n    <img [src]=\"noDataImage\" [alt]=\"altText\" class=\"image\" />\n    <p class=\"text\" [innerHTML]=\"noDataText\" *ngIf=\"noDataText\"></p>\n    <div *ngIf=\"noDataButton\" class=\"button-row\">\n      <button *ngIf=\"noDataButton\" class=\"vx-btn md primary\" (click)=\"actionEmitter($event)\">{{noDataButton}}</button>\n    </div>\n    \n    <div *ngIf=\"noDataMultipleButtons?.length\" class=\"button-row\">\n      <button *ngFor=\"let button of noDataMultipleButtons\" class=\"vx-btn md primary\" (click)=\"getClickedButton(button)\">{{button.buttonText}}</button>\n    </div>\n  </div>\n</div>\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { AuthorizerService } from '@vcomply/authorizer';\nimport { Subject, catchError, map, of } from 'rxjs';\nimport { ApiService } from './api.service';\nimport { CommonService } from './common.service';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class FilesService {\n\n  fileToBeUploaded: Array<any> = [];\n  uploadedFile: Array<any> = [];\n\n  uploadingFileList$: Subject<Array<any>> = new Subject()\n\n  constructor(\n    private http: HttpClient,\n    private authorizer: AuthorizerService,\n    private apiService: ApiService,\n    private commonService: CommonService\n  ) { }\n\n/**\n * The function downloads a file from a given URL and opens it in a new window.\n * @param {string} url - A string representing the URL of the file to be downloaded.\n * @param {string} filename - The name of the file that will be downloaded.\n */\n  public onDownloadFile(url: string, filename: string) {\n    this.getFileOnDownload(url, filename).subscribe({\n      next: (res: any) => {\n        const fileUrl = URL?.createObjectURL(res);\n        window.open(fileUrl);\n      },\n      error: (error: Error) => {\n        console.error(\"onDownloadFile error\", error)\n        this.commonService.showErrorSnackbar();\n      }\n    });\n  }\n\n\n/**\n * This function return  a file url to download file.\n * @param {string} url - A string representing the URL from which the file needs to be downloaded.\n * @param {string} filename - The name of the file to be downloaded.\n * @returns an Observable.\n */\n  private getFileOnDownload(url: string, filename: string): any {\n    return this.http.get(url, { responseType: 'arraybuffer' }).pipe(\n      map((response: any) => {\n        const dataType = 'application/octet-stream';\n        const binaryData = [];\n        binaryData.push(response);\n        const downloadLink = document.createElement('a');\n        downloadLink.href = window.URL.createObjectURL(new Blob(binaryData, { type: dataType }));\n        if (filename) {\n          downloadLink.setAttribute('download', filename);\n          document.body.appendChild(downloadLink);\n          downloadLink.click();\n        }\n      }),\n      catchError((err: Error) => of(err))\n    );\n  }\n\n\n  getFilesData(filesData: Array<any>, reportDetails: any, dueDateId: any) {\n    const selectedFiles: any = [];\n    if (filesData && filesData[0]) {\n      for (let i = 0; i <= filesData.length - 1; i++) {\n        const reader = new FileReader();\n        const filename = filesData[i].name;\n        const str = filesData[i].name.split('.');\n        const size = str.length;\n        const extension = str[size - 1];\n        let fileurl = '';\n\n        reader.readAsDataURL(filesData[i]); // read file as data url\n        reader.onload = () => {\n          fileurl = reader.result as string;\n          const fileObj = {\n            file: filesData[i],\n            filename,\n            fileurl,\n            extension: extension.toUpperCase(),\n            percentdone: 0,\n            file_name: '',\n            isUploading: true,\n          };\n          selectedFiles.push(fileObj);\n          this.uploadingFileList$.next(selectedFiles)\n          if (selectedFiles.length === filesData.length) {\n             this.FileUpload(selectedFiles, reportDetails,dueDateId);\n           }\n        };\n      }\n    }\n  }\n  /**\n   *\n   * @param filesInfo[0] => selected files\n   * @param filesInfo[1]  => Report details\n   * @param filesInfo[2] => due date id\n   */\n  FileUpload(...filesInfo: Array<any>) {\n    const selectedFiles = filesInfo[0];\n    const reportDetails = filesInfo[1];\n    const index = 0\n    for (let i = index; i <= selectedFiles.length - 1; i++) {\n      const formData = new FormData();\n      const file = selectedFiles[i].file;\n      formData.append('file', file);\n      const URL = 'uploads/' + reportDetails.AssignByEmail + '/' + reportDetails.ReportId + '/reports/'\n      this.apiService.nodeAPI(URL, formData).subscribe((data: any) => {\n        const payload = {\n          file_path: data,\n          report_id: reportDetails.ReportId,\n          due_date_id: filesInfo[2],\n          action_type: 'COMMENT_ATTACHMENT',\n          member_id: this.authorizer.getUserId(),\n        };\n        this.uploadedFile.push({\n          original_filename: data?.org_file,\n          attachment: '',\n          file_path: data?.file_url_path\n        })\n        this.fileToBeUploaded.push(payload);\n        selectedFiles[i].isUploading = false;\n        this.uploadingFileList$.next(selectedFiles)\n      });\n    }\n  }\n\n  extractCommentMention(html_content: any) {\n    const all_inputs = html_content.match(/<input.+?\\/?>/g);\n    if (all_inputs) {\n      const date_array = [];\n      const user_array = [];\n      for (let i = 0; i < all_inputs.length; i++) {\n        const doc: any = new DOMParser().parseFromString(all_inputs[i], 'text/html');\n        const data_attribute: any = doc.querySelector('input').getAttribute('value');\n        if (data_attribute[0] === '@') {\n          user_array.push(doc.querySelector('input').getAttribute('data-id'));\n        }\n        if (data_attribute[0] === '#') {\n          date_array.push(doc.querySelector('input').getAttribute('data-id'));\n        }\n      }\n      return date_array.join() + '~~' + user_array.join();\n    } else {\n      return '';\n    }\n  }\n\n}\n","import { Component, EventEmitter, OnInit, Optional } from '@angular/core';\nimport { TooltipModule } from '../../../ui-elements/tooltip/tooltip.module';\nimport { CommonModule } from '@angular/common';\nimport { FilesService } from '../../services/files.service';\nimport { Configurations } from '../../../../configuration'\n@Component({\n    selector: 'files',\n    templateUrl: './files.component.html',\n    imports: [TooltipModule, CommonModule],\n    inputs: ['filesArray', 'isDeleted'],\n    outputs: ['onDelete']\n})\nexport class FilesComponent  {\n\n  filesArray: Array<any> = [];\n  environment: any;\n  isDeleted: boolean = false\n  onDelete: EventEmitter<any> = new EventEmitter();\n\n  constructor(\n    public fileService: FilesService,\n    @Optional() config?: Configurations\n  ) {\n    if(config) this.environment = config.envConfig;\n  }\n\n  deleteFile(file: any) {\n    this.onDelete.emit(file)\n  }\n\n}\n","<ng-container *ngFor=\"let file of filesArray\">\n  <ng-content></ng-content>\n  <div class=\"upload-file vx-d-inline-flex vx-align-center vx-mr-1 vx-mb-1\">\n    <span\n      *ngIf=\"file?.attachment_id || file?.deleted\"\n      class=\"file table\"\n      [ngClass]=\"\n        file.original_filename?.split('.')[\n          file.original_filename?.split('.').length - 1\n        ]\n      \"\n    >\n      <i class=\"icons\">&#xe92e;</i>\n      <div class=\"format\">\n        {{\n          file.original_filename?.split(\".\")[\n            file.original_filename?.split(\".\").length - 1\n          ]\n        }}\n      </div>\n    </span>\n\n    <i\n      *ngIf=\"!file?.attachment_id && !file?.deleted\"\n      class=\"icons vx-fs-12 vx-label-txt vx-mr-2 vx-ml-1\"\n      >&#xeb34;</i\n    >\n\n    <div\n      class=\"file-name vx-fs-11 vx-label-txt\"\n      [appTooltip]=\"file.original_filename\"\n      placement=\"bottom-left\"\n      delay=\"0\"\n      type=\"black\"\n      [tooltipMandatory]=\"true\"\n    >\n      <s *ngIf=\"(isDeleted && file?.attachment_id ) || (!file.attachment_id && file?.deleted)\">{{\n        file?.original_filename\n      }}</s>\n      <ng-container *ngIf=\"!isDeleted && file.attachment_id\">{{\n        file?.original_filename\n      }}</ng-container>\n\n      <a\n        class=\"vx-txt-blue\"\n        [href]=\"file?.original_filename\"\n        target=\"_blank\"\n        *ngIf=\"!file?.attachment_id && !file?.deleted\"\n        >{{ file?.original_filename }}</a\n      >\n    </div>\n    <button\n      *ngIf=\"file?.allow_delete && file.attachment_id\"\n      (click)=\"deleteFile(file)\"\n      class=\"download-btn vx-fs-12 vx-txt-blue vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-ml-2 vx-d-flex vx-align-center vx-justify-center\"\n      style=\"\n        color: #d93b41;\n        border-right: none;\n        border-left: 0.5px solid #dbdbdb;\n      \"\n      [appTooltip]=\"'Delete'\"\n      placement=\"left\"\n      delay=\"0\"\n      type=\"black\"\n      [tooltipMandatory]=\"true\"\n    >\n      <i class=\"icons\">&#xe923;</i>\n    </button>\n    <button\n      *ngIf=\"!isDeleted && file.attachment_id\"\n      (click)=\"\n        fileService.onDownloadFile(\n          environment.s3Url +\n            environment.s3Bucket +\n            '/' +\n            (file.file_path ?? file.filepath) +\n            (file.attachment || file.filename\n              ? '/' + (file.attachment ?? file.filename)\n              : ''),\n          file.original_filename\n        )\n      \"\n      class=\"download-btn vx-fs-10 vx-txt-blue vx-p-0 vx-pl-0 vx-pl-1 vx-pr-1 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"\n      [appTooltip]=\"'Download'\"\n      placement=\"left\"\n      delay=\"0\"\n      type=\"black\"\n      [tooltipMandatory]=\"true\"\n    >\n      <i class=\"icons\">&#xe91b;</i>\n    </button>\n  </div>\n</ng-container>\n","import { Optional, Pipe, PipeTransform } from '@angular/core';\nimport { UserProfile } from '../interfaces/users-modal';\nimport { Configurations } from '../../../configuration';\n\n@Pipe({\n    name: 'getUserProfile',\n    standalone: false\n})\nexport class GetUserProfilePipe implements PipeTransform {\n  environment: any;\n\n  constructor(@Optional() config?: Configurations) {\n    if (config) this.environment = config.envConfig;\n  }\n  transform(\n    value: any,\n    type:\n      | 'ASSIGN_BY'\n      | 'ASSIGN_TO'\n      | 'EMPLOYEE'\n      | 'LOG'\n      | 'COLLABORATOR'\n      | 'OVERSEER'\n      | ''\n  ): UserProfile {\n    let userProfileDetails: UserProfile = {\n      name: '',\n      email: '',\n      shortName: '',\n      imageUrl: '',\n    };\n\n    switch (type) {\n      case 'ASSIGN_BY':\n        userProfileDetails = this.getAssignByData(value);\n        break;\n      case 'ASSIGN_TO':\n        userProfileDetails = this.getAssignToData(value);\n        break;\n      case 'EMPLOYEE':\n        userProfileDetails = this.getEmployeeData(value);\n        break;\n      case 'LOG':\n        userProfileDetails = this.getLogData(value);\n        break;\n      case 'COLLABORATOR':\n        userProfileDetails = this.getCollaborator(value);\n        break;\n      case 'OVERSEER':\n        userProfileDetails = this.getOverseer(value);\n        break;\n      default:\n        userProfileDetails = this.getMemberData(value);\n        break;\n    }\n    return userProfileDetails;\n  }\n\n  getAssignByData(value: any) {\n    return {\n      name: 'Entrusted by: ' + value.AssignBy,\n      email: value.AssignByEmail,\n      shortName: value.member_short_name,\n      imageUrl: this.getProfileURL(value.member_pic),\n    };\n  }\n\n  getAssignToData(value: any) {\n    return {\n      name: 'Entrusted to: ' + value.AssignTo,\n      email: value.AssignToEmail,\n      shortName: value.employee_short_name,\n      imageUrl: this.getProfileURL(value.employee_pic),\n    };\n  }\n\n  getEmployeeData(value: any) {\n    return {\n      name: value.employee_name,\n      email: value.employee_email,\n      shortName: value.employee_short_name,\n      imageUrl: this.getProfileURL(value.employee_pic),\n    };\n  }\n\n  getMemberData(value: any) {\n    return {\n      name: value.member_name,\n      email: value.member_email,\n      shortName: value.member_short_name ?? value.short_name,\n      imageUrl: this.getProfileURL(value.member_pic ?? value.profile_pic),\n    };\n  }\n\n  getLogData(value: any) {\n    return {\n      name: value.member_name,\n      email: value.member_email,\n      shortName: value.sort_name,\n      imageUrl: this.getProfileURL(value.profile_pic),\n    };\n  }\n\n  getCollaborator(value: any) {\n    return {\n      name: value.user_name,\n      email: value.user_email,\n      shortName: value.short_name,\n      imageUrl: this.getProfileURL(value.pic),\n    };\n  }\n\n  getOverseer(value: any) {\n    return {\n      name: value.name,\n      email: value.email,\n      shortName: value.short,\n      imageUrl: this.getProfileURL(value.pic),\n    };\n  }\n\n  getProfileURL(value: string) {\n    if (!value) return '';\n    return `${this.environment.s3Url}${this.environment.s3Bucket}/profile_pic/thumb/${value}`;\n  }\n}\n","import {\n  Component,\n  EventEmitter,\n  Inject,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n} from '@angular/core';\nimport { CommonApiService } from '../../services/common-api.service';\nimport { Subject, takeUntil } from 'rxjs';\nimport { FilesService } from '../../services/files.service';\nimport { AuthorizerService } from '@vcomply/authorizer';\n\n@Component({\n  selector: 'log-editor',\n  templateUrl: './log-editor.component.html',\n  styleUrls: ['./log-editor.component.less'],\n  inputs: ['description', 'dueDateList', 'userList', 'dueDateId', 'id'],\n  outputs: ['onSave'],\n  standalone: false,\n})\nexport class LogEditorComponent implements OnInit, OnChanges, OnDestroy {\n  description: any = {\n    mode: 'prime',\n    placeholder:\n      'Add a comment. (Use @ to mention a specific person and # to select a specific due date)',\n    link: true,\n    file: true,\n    buttonName: 'Comment',\n    mentionedDates: [],\n    mentionedNames: [],\n    id: 'qv-log-editor',\n  };\n  currentInputComments: string = '';\n\n  dueDateList: Array<any> = [];\n  userList: Array<any> = [];\n  reportDetails: any;\n  dueDateId: string = '';\n  fileUploadingStatus: Array<any> = [];\n  onSave: EventEmitter<any> = new EventEmitter();\n  userDetails: any;\n  unSubscribe: Subject<any> = new Subject();\n  id!: string;\n\n  constructor(\n    private commonApiService: CommonApiService,\n    public fileService: FilesService,\n    private authorizerService: AuthorizerService\n  ) {\n    this.userDetails = this.authorizerService.getUser();\n    this.getFileUploadingStatus();\n    this.getCollaborator();\n  }\n\n  ngOnDestroy(): void {\n    this.unSubscribe.next(null);\n    this.unSubscribe.complete();\n  }\n\n  getCollaborator() {\n    this.commonApiService.collaboratorList$\n      .pipe(takeUntil(this.unSubscribe))\n      .subscribe({\n        next: (res: any) => {\n          if (res?.length) {\n            const loginUserDetails = res?.find((user: any) => {\n              return user.user_id === this.userDetails.id;\n            });\n\n            if (loginUserDetails) {\n              this.userDetails = loginUserDetails;\n            }\n          }\n        },\n      });\n  }\n\n  ngOnChanges() {\n    if (this.description) {\n      this.description.id += this.id;\n      this.getMentionedDates();\n      this.getMentionedUsers();\n    }\n  }\n\n  ngOnInit(): void {\n    this.description.disabledButton = true;\n  }\n\n  /**\n   * This function subscribes to a common API service and retrieves mentioned dates, which are then\n   * assigned to a property in the description object.\n   */\n  getMentionedDates() {\n    this.commonApiService.mentionedDate$\n      .pipe(takeUntil(this.unSubscribe))\n      .subscribe({\n        next: (res: any) => {\n          if (res) {\n            this.description.mentionedDates = res;\n          }\n        },\n        error: (error: Error) => {\n          console.error('getMentionedDates error =>', error);\n        },\n      });\n  }\n\n  /**\n   * This function retrieves mentioned users from a common API service and updates the description\n   * accordingly.\n   */\n  getMentionedUsers() {\n    this.commonApiService.responsibilityDetails$\n      .pipe(takeUntil(this.unSubscribe))\n      .subscribe({\n        next: (res: any) => {\n          if (res && Object.keys(res)?.length) {\n            this.reportDetails = res;\n            this.description.mentionedNames = res.all_mentioned_user;\n          }\n        },\n        error: (error: Error) => {\n          console.error('getMentionedDates error =>', error);\n        },\n      });\n  }\n\n  getFiles(filesArray: any) {\n    const filesData = filesArray.map((ele: any) => ele.file);\n    this.description.buttonName = 'Upload';\n    this.description.disabledButton = true;\n    this.fileService.getFilesData(\n      filesData,\n      this.reportDetails,\n      this.dueDateId\n    );\n  }\n\n  getFileUploadingStatus() {\n    this.fileService.uploadingFileList$\n      .pipe(takeUntil(this.unSubscribe))\n      .subscribe({\n        next: (res: any) => {\n          this.fileUploadingStatus = [...new Set(res)];\n          this.description.disabledButton = false;\n        },\n        error: (error: Error) => {\n          console.error('Error while uploading file ==>', error);\n        },\n      });\n  }\n\n  insertComment(event: any) {\n    this.description.disabledButton = true;\n    const mention_string: string =\n      this.fileService.extractCommentMention(event);\n    let mention_array = mention_string?.split('~~');\n    mention_array = mention_array.filter((data: any) => data);\n    this.onSave.emit({\n      fileDetails: [...new Set(this.fileService.fileToBeUploaded)],\n      comments: event,\n      get_user_mentioned: mention_array[1]?.split(',') ?? [],\n      get_date_mentioned: mention_array[0]?.split(',') ?? [],\n    });\n    this.fileService.fileToBeUploaded = [];\n    this.fileUploadingStatus = [];\n    this.description.buttonName = 'Comment';\n  }\n\n  onDataChange(event: any) {\n    if (\n      this.stripElement(this.currentInputComments).trim() ||\n      this.fileService.fileToBeUploaded?.length ||\n      this.fileService.extractCommentMention(this.currentInputComments) ||\n      this.stripElement(event).trim()\n    ) {\n      this.description.disabledButton = false;\n    } else {\n      this.description.disabledButton = true;\n    }\n  }\n\n  stripElement(value: string) {\n    if (!value) {\n      return '';\n    }\n    const temporalDivElement = document.createElement('div');\n    temporalDivElement.innerHTML = value;\n    return temporalDivElement.textContent || temporalDivElement.innerText || '';\n  }\n\n  removeSelectedFile(index: number) {\n    this.fileService.fileToBeUploaded.splice(index, 1);\n    this.fileUploadingStatus.splice(index, 1);\n    this.onDataChange(this.currentInputComments);\n  }\n}\n","<div class=\"comment-editor-inner vx-pl-3 vx-pr-3 vx-d-flex\">\n  <avatar\n    [userDetails]=\"userDetails | getUserProfile : 'COLLABORATOR'\"\n  ></avatar>\n  <div class=\"editor-area vx-d-block\">\n    <div\n      *ngIf=\"fileUploadingStatus?.length\"\n      class=\"upload-file-area vx-p-2 vx-pt-1 vx-pr-0\"\n    >\n      <div class=\"upload-file-area-inner vx-pr-2\">\n        <div\n          class=\"upload-file-item vx-d-inline-flex vx-align-center vx-mr-1\"\n          *ngFor=\"let file of fileUploadingStatus; let i = index\"\n        >\n          <span class=\"file table\" [ngClass]=\"file?.extension | lowercase\">\n            <i class=\"icons\">&#xe92e;</i>\n            <div class=\"format\">{{ file?.extension }}</div>\n          </span>\n          <div\n            class=\"file-name vx-fs-11 vx-label-txt\"\n            [appTooltip]=\"file?.filename\"\n            placement=\"bottom-left\"\n            delay=\"0\"\n            type=\"black\"\n            [tooltipMandatory]=\"false\"\n          >\n            {{ file?.filename }}\n          </div>\n          <button\n            (click)=\"removeSelectedFile(i)\"\n            class=\"cross-btn vx-fs-12 vx-label-txt vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-ml-2 vx-d-flex vx-align-center vx-justify-center\"\n          >\n            <i class=\"icons\">&#xe9ae;</i>\n          </button>\n          <div *ngIf=\"file?.isUploading\" class=\"progress-bar\">\n            <div class=\"progress-bar-move\"></div>\n          </div>\n        </div>\n      </div>\n    </div>\n    <vcomply-editor\n      [editorConfig]=\"description\"\n      (sendSavedFiles)=\"getFiles($event)\"\n      (comment)=\"insertComment($event)\"\n      [(ngModel)]=\"currentInputComments\"\n      (ngModelChange)=\"onDataChange($event)\"\n    >\n    </vcomply-editor>\n  </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n  name: 'editorHtml',\n  standalone: false,\n})\nexport class EditorHtmlPipe implements PipeTransform {\n  constructor(private sanitizer: DomSanitizer) {}\n\n  transform(value: string | null | undefined): SafeHtml | null {\n    if (typeof value !== 'string' || !value.trim()) {\n      return null;\n    }\n    return this.sanitizer.bypassSecurityTrustHtml(value);\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'getLogClass',\n    standalone: false\n})\nexport class GetLogClassPipe implements PipeTransform {\n\n  transform(value: any): any {\n    if(value?.failed_flag) {\n      return {\n        icon: '&#xe9e4;',\n        class: 'red-text'\n      };\n    } else if(value?.delayed_flag) {\n      return {\n        icon: '&#xe9e3;',\n        class: 'yellow-text'\n      };\n    } else if(value?.submit_flag) {\n      return {\n        icon: '&#xe949;',\n        class: 'green-text'\n      };\n    } else {\n      return {\n        icon: '&#xe996;',\n        class: 'blue-text'\n      };\n    }\n\n  }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AuthorizerService } from '@vcomply/authorizer';\n\n@Pipe({\n    name: 'changeTimezone',\n    standalone: false\n})\nexport class ChangeTimezonePipe implements PipeTransform {\n  constructor(private authorizer: AuthorizerService) {}\n  transform(value: any): any {\n    if (typeof value === 'number') {\n      value = new Date(value);\n    }\n    const invDate = new Date(\n      value.toLocaleString('en-US', {\n        timeZone: this.authorizer.getUserTimezone(),\n      })\n    );\n    return invDate;\n  }\n\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  OnChanges,\n  OnDestroy,\n  Optional,\n  SimpleChanges,\n} from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { FilesService } from '../../services/files.service';\nimport { Configurations } from '../../../../configuration';\nimport { CommonService } from '../../services/common.service';\nimport { AuthorizerService } from '@vcomply/authorizer';\nimport { DialogBoxComponent } from '../../../ui-elements/action-dialog/dialog/dialog.component';\nimport { DialogDataService } from '../../../ui-elements/ui-dialog/ui-dialog.service';\nimport { ApiService } from '../../services/api.service';\nimport { SnackBarService } from '../../../ui-elements/snack-bar/snack-bar.service';\nimport { ASSETS } from '../../constants/assets.constants';\n\n@Component({\n    selector: 'due-date-log',\n    templateUrl: './due-date-log.component.html',\n    styleUrls: ['./due-date-log.component.less'],\n    inputs: ['logDetails', 'reportDetails', 'dueDateId', 'dueDateDetails'],\n    outputs: ['onActionTaken'],\n    standalone: false\n})\nexport class DueDateLogComponent implements OnChanges, OnDestroy {\n  hideFirstReply: boolean = false;\n  ASSETS: any = ASSETS;\n  environment: any;\n  logDetails: any;\n  dueDateId: string = '';\n  reportDetails: any;\n  dueDateDetails: any;\n  parentReplyIndex: Array<number> = [];\n  subCommentIndex: Array<number> = [];\n  childCommentIndex: Array<number> = [];\n  subReplyIndex: Array<number> = [];\n  firstReplyDescription: any = {\n    mode: 'prime',\n    placeholder: 'Add a comment.',\n    link: true,\n    file: false,\n    buttonName: 'Comment',\n  };\n\n  secondReplyDescription: any = {\n    mode: 'prime',\n    placeholder: 'Add a comment.',\n    link: true,\n    file: false,\n    buttonName: 'Comment',\n  };\n\n  multipleUserDetails: any = {\n    name: '',\n    email: '',\n    shortName: '',\n    imageUrl: ASSETS.multipleUser,\n  };\n  onActionTaken: EventEmitter<any> = new EventEmitter();\n  commentHeadIcon: string = '';\n  private unsubscribe = new Subject<any>();\n\n  constructor(\n    public fileService: FilesService,\n    private commonService: CommonService,\n    private authorizer: AuthorizerService,\n    private dialog: DialogDataService,\n    private apiService: ApiService,\n    private snackbarService: SnackBarService,\n    @Optional() config?: Configurations\n  ) {\n    if (config) this.environment = config.envConfig;\n    this.onRefresh();\n  }\n\n  ngOnChanges() {\n    if (this.logDetails) {\n      this.logDetails = this.getRootComments(this.logDetails);\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.unsubscribe.next(null);\n    this.unsubscribe.complete();\n  }\n\n  /* These are functions that toggle the display of comments and replies in the UI. They take an index as\ninput, which represents the index of the comment or reply in the array of comments or replies. The\nfunctions check if the index is already present in the corresponding array (`subCommentIndex`,\n`parentReplyIndex`, `childCommentIndex`, `subReplyIndex`). If it is present, it removes the index\nfrom the array, which hides the corresponding comment or reply. If it is not present, it adds the\nindex to the array, which shows the corresponding comment or reply. */\n\n  showFirstComment(index: number) {\n    const eleoIndex = this.subCommentIndex.indexOf(index);\n    if (eleoIndex > -1) {\n      this.subCommentIndex.splice(eleoIndex, 1);\n    } else {\n      this.subCommentIndex.push(index);\n    }\n  }\n\n  /**\n   * The function toggles the display of the first reply in a list of replies.\n   * @param {number} index - The index parameter is a number that represents the index of a reply in an\n   * array. The function `showFirstReply` uses this index to toggle the visibility of the first reply\n   * in a thread of replies. If the index is already in the `parentReplyIndex` array, it removes it,\n   * otherwise\n   */\n  showFirstReply(index: number) {\n    const eleIndex = this.parentReplyIndex.indexOf(index);\n    if (eleIndex > -1) {\n      this.parentReplyIndex.splice(eleIndex, 1);\n    } else {\n      this.parentReplyIndex.push(index);\n    }\n  }\n\n  /**\n   * The function toggles the display of a child comment based on its index.\n   * @param {number} index - The index parameter is a number that represents the index of a comment in\n   * an array. This function is used to toggle the display of child comments for a particular parent\n   * comment. If the index is already in the childCommentIndex array, it is removed, and if it is not\n   * present, it is added\n   */\n  showSecondComment(index: number) {\n    const eleoIndex = this.childCommentIndex.indexOf(index);\n    if (eleoIndex > -1) {\n      this.childCommentIndex.splice(eleoIndex, 1);\n    } else {\n      this.childCommentIndex.push(index);\n    }\n  }\n\n  /**\n   * The function toggles the display of a sub-reply based on its index.\n   * @param {number} index - The index parameter is a number that represents the index of a particular\n   * reply in an array or list. This function is used to toggle the display of a second level of\n   * replies to a particular reply. If the index is already in the subReplyIndex array, it is removed,\n   * and if it is not\n   */\n  showSecondReply(index: number) {\n    const eleoIndex = this.subReplyIndex.indexOf(index);\n    if (eleoIndex > -1) {\n      this.subReplyIndex.splice(eleoIndex, 1);\n    } else {\n      this.subReplyIndex.push(index);\n    }\n  }\n\n  /**\n   * This function returns an array of comments sorted by date and filtered to only include root\n   * comments.\n   * @param {any} data - The parameter \"data\" is an array of objects that contains information about\n   * comments or discussions. Each object represents a comment or discussion and has properties such as\n   * \"discussion_.id\", \"root_comment_id\", \"date\", etc. The function \"getRootComments\" takes this array as\n   * input and returns an array of\n   * @returns The function `getRootComments` is returning an array of objects that represent the root\n   * comments of a discussion. Each object in the array has a `subcommentArray` property that contains an\n   * array of objects representing the sub-comments of the root comment. The array is sorted by the\n   * `date` property of the objects in ascending order. The `filter` method is used to only return\n   * objects that are parent componets\n   */\n  getRootComments(data: any) {\n    return data\n      .map((logs: any) => {\n        logs['subcommentArray'] = data.filter(\n          (ele: any) => ele.root_comment_id === logs.discussion_id\n        );\n        return logs;\n      })\n      .sort((ele1: any, ele2: any) => ele1.date - ele2.date)\n      .filter((logs: any) => logs?.root_comment_id === 0);\n  }\n\n  /**\n   * This function adds a comment to a report with specific details.\n   * @param {any} event - The event parameter is an object that contains information about the event\n   * that triggered the function. It is likely an event object that was passed as an argument to the\n   * function when it was called.\n   * @param {any} log - The `log` parameter is an object that contains information related to a\n   * specific discussion or comment. It likely includes properties such as `discussion_id`,\n   * `duedate_id`, and possibly others depending on the context of the code.\n   */\n  getEditorInfo(event: any, log: any) {\n    const DETAILS = {\n      report_id: this.reportDetails.ReportId,\n      duedate_id: log.duedate_id,\n      member_id: this.authorizer.getUserId(),\n      root_comment_id: log.discussion_id,\n      comment: event.comments,\n      attachment_ids: [],\n      get_user_mentioned: event.get_user_mentioned,\n      get_date_mentioned: event.get_date_mentioned,\n    };\n    this.commonService.onAddComment(DETAILS);\n  }\n\n  /**\n   * The function subscribes to a refreshLog$ observable and resets two index arrays when a new value\n   * is emitted.\n   */\n  onRefresh() {\n    this.commonService.refreshLog$\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe({\n        next: () => {\n          this.parentReplyIndex = [];\n          this.subReplyIndex = [];\n        },\n      });\n  }\n\n  /**\n   * The function opens a dialog box with a given log and prompts the user to confirm deletion, then\n   * deletes the log if confirmed.\n   * @param {any} log - The `log` parameter is of type `any` and is passed as an argument to the\n   * `deleteLog` function. It is used to display information in a dialog box and to delete a comment\n   * associated with that log.\n   */\n  deleteLog(log: any) {\n    let ref = this.dialog.open(DialogBoxComponent, {\n      data: { log },\n      position: 'CENTER',\n      background: 'black',\n    });\n\n    ref.afterClosed.subscribe({\n      next: (res: any) => {\n        if (res) {\n          this.deleteComment(log);\n        }\n      },\n    });\n  }\n\n  /**\n   * This function deletes a comment using an API call and displays a success message.\n   * @param {any} res - an object containing information about the comment to be deleted, including its\n   * ID (_id)\n   */\n  deleteComment(res: any) {\n    const PAYLOAD = {\n      comment_id: res._id,\n      report_id: this.reportDetails?.EncryptedReportId,\n      due_date_id: this.dueDateId,\n    };\n\n    const URL = 'compliance_post/?mode=workroomComment/CommentDelete';\n\n    this.apiService.post(URL, PAYLOAD).subscribe({\n      next: (res: any) => {\n        this.snackbarService.show(`The comment has been deleted.`, 'success');\n        this.commonService.refreshLog$.next(this.dueDateId);\n      },\n      error: (err: Error) => {\n        console.error(err);\n      },\n    });\n  }\n\n  /**\n   * The function prompts a dialog box to confirm the deletion of a file or evidence and calls the\n   * onEvidenceDelete function if confirmed.\n   * @param {any} file - The file that is being deleted.\n   * @param {any} log - The log parameter is an object that contains information about the file that was\n   * deleted, including whether it was evidence or not, the number of evidence or files associated with\n   * it, and the name of the member who uploaded it.\n   */\n  onFileDelete(file: any, log: any) {\n    const message = log.isEvidence\n      ? log?.evidence_id_arr?.length < 2\n        ? 'the evidence'\n        : 'all the evidences'\n      : log?.evidence_id_arr?.length < 2\n      ? 'the file'\n      : 'all the files';\n\n    let ref = this.dialog.open(DialogBoxComponent, {\n      data: {\n        message: `This action will <strong>delete</strong> ${message} uploaded by <strong>${log?.member_name}</strong>.`,\n      },\n      position: 'CENTER',\n      background: 'black',\n    });\n\n    ref.afterClosed.subscribe((res: any) => {\n      if (res) {\n        this.onEvidenceDelete(file, log);\n      }\n    });\n  }\n\n  /**\n   * This function sends a post request to delete evidence or files and displays a success message using\n   * the snackbar service.\n   * @param {any} file - The file object that is being deleted.\n   * @param {any} log - The `log` parameter is an object that contains information about the evidence or\n   * file being deleted, such as the ID(s) of the evidence or file, the name of the member who deleted\n   * it, and whether it is evidence or a file.\n   */\n  onEvidenceDelete(file: any, log: any) {\n    const MESSAGE_TEXT: string = log.isEvidence\n      ? log?.evidence_id_arr?.length < 2\n        ? 'evidence has'\n        : 'evidences have'\n      : log?.evidence_id_arr?.length < 2\n      ? 'file has'\n      : 'files have';\n    const ids = Array.isArray(file.attachment_id)\n      ? file.attachment_id.map((id: any) => id.attachment_id)\n      : [file.attachment_id];\n    const message = `The ${MESSAGE_TEXT} been deleted successfully.`;\n    const URL: string = 'compliance_post?mode=workroomComment/EvidenceDelete';\n    const PAYLOAD = {\n      report_id: this.reportDetails?.EncryptedReportId,\n      due_date_id: this.dueDateId,\n      evidence_id_arr: ids,\n      memberName: log.member_name,\n      isEvidence: log?.isEvidence,\n    };\n\n    this.apiService.post(URL, PAYLOAD).subscribe({\n      next: (res: any) => {\n        this.snackbarService.show(message, 'success');\n        this.commonService.refreshLog$.next(this.dueDateId);\n      },\n      error: (err: Error) => {\n        console.error('onEvidenceDelete error', err);\n        this.commonService.showErrorSnackbar();\n      },\n    });\n  }\n\n  bookmark(\n    member_id: any,\n    report_id: any,\n    duedate_id: any,\n    discussion_id: any,\n    comment: any,\n    isBookmarkedValue: any\n  ) {\n    let add_remove: string = '';\n    if (isBookmarkedValue === 0) {\n      add_remove = 'add';\n    } else {\n      add_remove = 'remove';\n    }\n    const bookmarkObject = {\n      member_id,\n      report_id,\n      duedate_id,\n      discussion_id,\n      comment,\n      add_remove,\n    };\n    this.logDetails.forEach((ele: any) => {\n      if (ele.discussion_id === discussion_id) {\n        if (!isBookmarkedValue) {\n          ele.Is_bookmarked = 1;\n        } else {\n          ele.Is_bookmarked = 0;\n        }\n      }\n      return ele;\n    });\n    this.onBookMark(bookmarkObject);\n  }\n\n  onBookMark(payload: any) {\n    let action = '';\n    const url: string =\n      'compliance_post?mode=complianceReport/CommentBookMarkAddDelete';\n\n    this.apiService.post(url, payload).subscribe((res: any) => {\n      if (payload.add_remove === 'add') {\n        this.snackbarService.show('Bookmark added successfully.', 'success');\n      } else {\n        this.snackbarService.show('Bookmark removed successfully.', 'success');\n      }\n    });\n  }\n}\n","<div class=\"overview-area-comment vx-p-3 vx-pt-5 vx-pb-0\">\n  <div *ngIf=\"!logDetails\">\n    <text-loader></text-loader>\n  </div>\n  <ng-container *ngIf=\"logDetails\">\n    <ng-container>\n      <div *ngIf=\"logDetails[0]?.msg\" class=\"comment-top vx-pb-4\">\n        <div class=\"icons-area vx-d-flex vx-align-center vx-justify-center\">\n          <i class=\"icons vx-fs-14\" [ngClass]=\"(dueDateDetails | getLogClass)?.class\"\n            [innerHTML]=\"(dueDateDetails | getLogClass)?.icon\"></i>\n        </div>\n        <div class=\"comment-heading vx-fs-12 vx-paragraph-txt vx-lh-7\" [innerHTML]=\"logDetails[0]?.msg | editorHtml\">\n        </div>\n      </div>\n      <div *ngFor=\"let eachLog of logDetails.slice(1); let logIndex = index\" class=\"comment-item vx-mb-4\">\n        <avatar *ngIf=\"eachLog?.sort_name || eachLog?.profile_pic\" [userDetails]=\"eachLog | getUserProfile : 'LOG'\">\n        </avatar>\n        <avatar *ngIf=\"!eachLog?.sort_name && !eachLog?.profile_pic\" [userDetails]=\"multipleUserDetails\"></avatar>\n        <div class=\"comment-box vx-p-2 vx-pt-1 vx-d-inline-block\">\n          <button *ngIf=\"\n              eachLog?.bookmark_enable && reportDetails?.read_only_flag != 1\n            \" (click)=\"\n              bookmark(\n                eachLog?.member_id,\n                eachLog?.report_id,\n                eachLog?.duedate_id,\n                eachLog?.discussion_id,\n                eachLog?.comment,\n                eachLog?.Is_bookmarked\n              )\n            \" class=\"bookmark-btn vx-fs-14 vx-paragraph-txt vx-p-0 vx-m-0 vx-d-flex\"\n            [class.active]=\"eachLog?.Is_bookmarked\">\n            <i class=\"icons\">&#xe982;</i>\n          </button>\n          <div class=\"comment-text vx-fs-12 vx-paragraph-txt vx-pr-5\" [innerHTML]=\"eachLog?.msg | editorHtml\"></div>\n          <files [filesArray]=\"eachLog.file_details\" [isDeleted]=\"eachLog?.deleted_file\"\n            (onDelete)=\"onFileDelete($event, eachLog)\"></files>\n          <div class=\"comment-bottom vx-mt-2 vx-d-flex vx-align-center\">\n            <div class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase\">\n              {{\n              eachLog?.date * 1000\n              | changeTimezone\n              | date : \"dd MMM y, h:mm a\"\n              }}\n            </div>\n            <button *ngIf=\"\n                eachLog?.Is_actionable === 1 && eachLog?.subcommentArray?.length\n              \" [disabled]=\"eachLog?.subcommentArray?.length === 0\"\n              [class.disabled]=\"eachLog?.subcommentArray?.length === 0\" (click)=\"showFirstComment(logIndex)\"\n              class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-pl-2 vx-pr-0 vx-ml-2 vx-lh-4\">\n              {{ eachLog?.subcommentArray?.length }}\n              {{\n              eachLog?.subcommentArray?.length > 1 ? \"COMMENTS\" : \"COMMENT\"\n              }}\n            </button>\n            <button *ngIf=\"\n                reportDetails?.read_only_flag != 1 && eachLog.Is_actionable == 1\n              \" (click)=\"showFirstReply(logIndex)\"\n              class=\"vx-fs-11 vx-fw-500 vx-txt-blue vx-pl-2 vx-pr-0 vx-ml-2 vx-lh-4 vx-d-flex vx-align-center\">\n              REPLY\n              <i *ngIf=\"parentReplyIndex.includes(logIndex)\" class=\"icons cross vx-fs-12 vx-ml-1\">&#xe9ae;</i>\n            </button>\n            <button *ngIf=\"eachLog.allow_delete == 1\" (click)=\"deleteLog(eachLog)\"\n              class=\"vx-fs-11 vx-fw-500 vx-txt-blue vx-pl-2 vx-pr-0 vx-ml-2 vx-lh-4\">\n              DELETE\n            </button>\n          </div>\n        </div>\n\n        <!-- Reply -->\n        <div *ngIf=\"parentReplyIndex.includes(logIndex)\" class=\"comment-editor vx-mt-4\">\n          <log-editor *ngIf=\"reportDetails?.read_only_flag != 1\" [description]=\"firstReplyDescription\"\n            [dueDateId]=\"dueDateId\" (onSave)=\"getEditorInfo($event, eachLog)\">\n          </log-editor>\n        </div>\n        <!-- Comment -->\n        <ng-container *ngIf=\"subCommentIndex.includes(logIndex)\">\n          <div *ngFor=\"let subComment of eachLog?.subcommentArray; let j = index\" class=\"comment-item vx-mb-4 vx-mt-4\">\n            <avatar [userDetails]=\"subComment | getUserProfile : 'LOG'\"></avatar>\n            <div class=\"comment-box vx-p-2 vx-pt-1 vx-d-inline-block\">\n              <button *ngIf=\"\n                  subComment?.bookmark_enable &&\n                  reportDetails?.read_only_flag != 1\n                \" (click)=\"\n                  bookmark(\n                    subComment?.member_id,\n                    subComment?.report_id,\n                    subComment?.duedate_id,\n                    subComment?.discussion_id,\n                    subComment?.comment,\n                    subComment?.Is_bookmarked\n                  )\n                \" class=\"bookmark-btn vx-fs-14 vx-paragraph-txt vx-p-0 vx-m-0 vx-d-flex\"\n                [class.active]=\"subComment?.Is_bookmarked\">\n                <i class=\"icons\">&#xe982;</i>\n              </button>\n              <div class=\"comment-text vx-fs-12 vx-paragraph-txt\" [innerHTML]=\"subComment?.msg | editorHtml\"></div>\n              <div class=\"comment-bottom vx-mt-2 vx-d-flex vx-align-center\">\n                <div class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase\">\n                  {{\n                  subComment?.date * 1000\n                  | changeTimezone\n                  | date : \"dd MMM y, h:mm a\"\n                  }}\n                </div>\n                <button *ngIf=\"subComment?.subcommentArray?.length\" (click)=\"showSecondComment(j)\"\n                  class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-pl-2 vx-pr-0 vx-ml-2 vx-lh-4\"\n                  [class.disabled]=\"subComment?.subcommentArray?.length === 0\">\n                  {{ subComment?.subcommentArray?.length }}\n                  {{\n                  subComment?.subcommentArray?.length > 1\n                  ? \"COMMENTS\"\n                  : \"COMMENT\"\n                  }}\n                </button>\n                <button (click)=\"showSecondReply(j)\"\n                  class=\"vx-fs-11 vx-fw-500 vx-txt-blue vx-pl-2 vx-pr-0 vx-ml-2 vx-lh-4 vx-d-flex vx-align-center\">\n                  REPLY\n                  <i *ngIf=\"subReplyIndex.includes(j)\" class=\"icons cross vx-fs-12 vx-ml-1\">&#xe9ae;</i>\n                </button>\n                <button *ngIf=\"subComment.allow_delete == 1\" (click)=\"deleteLog(subComment)\"\n                  class=\"vx-fs-11 vx-fw-500 vx-txt-blue vx-pl-2 vx-pr-0 vx-ml-2 vx-lh-4\">\n                  DELETE\n                </button>\n              </div>\n            </div>\n\n            <!-- Second Comment -->\n            <div *ngIf=\"subReplyIndex.includes(j)\" class=\"comment-editor vx-mt-4\">\n              <log-editor *ngIf=\"reportDetails?.read_only_flag != 1\" [description]=\"secondReplyDescription\"\n                [dueDateId]=\"dueDateId\" (onSave)=\"getEditorInfo($event, subComment)\">\n              </log-editor>\n            </div>\n            <!-- Second Reply -->\n            <ng-container *ngIf=\"childCommentIndex.includes(j)\">\n              <div *ngFor=\"\n                  let subChildComment of subComment?.subcommentArray;\n                  let k = index\n                \" class=\"comment-item vx-mb-4 vx-mt-4\">\n                <avatar [userDetails]=\"subChildComment | getUserProfile : 'LOG'\"></avatar>\n                <div class=\"comment-box vx-p-2 vx-pt-1 vx-d-inline-block\">\n                  <button *ngIf=\"\n                      subChildComment?.bookmark_enable &&\n                      reportDetails?.read_only_flag != 1\n                    \" (click)=\"\n                      bookmark(\n                        subChildComment?.member_id,\n                        subChildComment?.report_id,\n                        subChildComment?.duedate_id,\n                        subChildComment?.discussion_id,\n                        subChildComment?.comment,\n                        subChildComment?.Is_bookmarked\n                      )\n                    \" class=\"bookmark-btn vx-fs-14 vx-paragraph-txt vx-p-0 vx-m-0 vx-d-flex\"\n                    [class.active]=\"subChildComment?.Is_bookmarked\">\n                    <i class=\"icons\">&#xe982;</i>\n                  </button>\n                  <div class=\"comment-text vx-fs-12 vx-paragraph-txt\" [innerHTML]=\"subChildComment?.msg | editorHtml\">\n                  </div>\n                  <div class=\"comment-bottom vx-mt-2 vx-d-flex vx-align-center\">\n                    <div class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase\">\n                      {{\n                      subChildComment?.date * 1000\n                      | changeTimezone\n                      | date : \"dd MMM y, h:mm a\"\n                      }}\n                    </div>\n                    <button *ngIf=\"subChildComment.allow_delete == 1\" (click)=\"deleteLog(subChildComment)\"\n                      class=\"vx-fs-11 vx-fw-500 vx-txt-blue vx-pl-2 vx-pr-0 vx-ml-2 vx-lh-4\">\n                      DELETE\n                    </button>\n                  </div>\n                </div>\n              </div>\n            </ng-container>\n          </div>\n        </ng-container>\n      </div>\n    </ng-container>\n  </ng-container>\n</div>","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'details-loader',\n    templateUrl: './details-loader.component.html',\n    styleUrls: ['./details-loader.component.less'],\n    standalone: false\n})\nexport class DetailsLoaderComponent {\n\n  constructor() { }\n\n}\n","<div class=\"qv-overview-performance vx-d-flex vx-align-center vx-justify-between vx-mb-3\">\n    <div class=\"qv-overview-performance-box vx-p-1 vx-pl-2 vx-pr-2 vx-w-100\">\n        <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-2 vx-mt-1\">\n            <div class=\"loader heading\"></div>\n        </div>\n        <div class=\"vx-d-flex vx-align-center\">\n            <div class=\"loader performance-circle vx-mr-4\" *ngFor=\"let data of [1, 1, 1]\"></div>\n        </div>\n    </div>\n    <div class=\"qv-overview-performance-box vx-p-1 vx-pl-2 vx-pr-2 vx-w-100 vx-ml-2 vx-mr-2\">\n        <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-2 vx-mt-1\">\n            <div class=\"loader heading\"></div>\n        </div>\n        <div class=\"vx-d-flex vx-align-center\">\n            <div class=\"loader performance-circle vx-mr-4\" *ngFor=\"let data of [1, 1]\"></div>\n        </div>\n    </div>\n    <div class=\"qv-overview-performance-box vx-p-1 vx-pl-2 vx-pr-2 vx-w-100 vx-ml-2 vx-mr-2\">\n        <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-2 vx-mt-1\">\n            <div class=\"loader heading\"></div>\n        </div>\n        <div class=\"loader feedbackScore vx-mr-4\"></div>\n    </div>\n</div>\n<div class=\"qv-overview-area-box vx-pb-3 vx-pl-4 vx-pr-4\">\n  <div class=\"qv-overview-area-box-top vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-3\">\n      <div class=\"loader\" *ngFor=\"let data of [1, 1]\"></div>\n  </div>\n  <div class=\"action-area vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-3 vx-mb-3\">\n      <div class=\"loader text\"></div>\n      <div class=\"vx-d-flex vx-align-center\">\n          <div class=\"loader btn vx-ml-1\" *ngFor=\"let data of [1, 1, 1, 1]\"></div>\n      </div>\n  </div>\n  <div class=\"qv-overview-area-comment vx-p-3 vx-pt-5 vx-pb-0\">\n      <div class=\"comment-item vx-mb-4 vx-d-flex vx-align-center\">\n          <div class=\"loader avatar vx-mr-2\"></div>\n          <div class=\"loader text\"></div>\n      </div>\n      <div class=\"comment-item vx-mb-4 vx-d-flex vx-align-center\">\n          <div class=\"loader avatar vx-mr-2\"></div>\n          <div class=\"loader comment\"></div>\n      </div>\n  </div>\n  <div class=\"loader editor vx-ml-3 vx-mr-3\"></div>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n    selector: 'app-circle-progress',\n    templateUrl: './circle.component.html',\n    styleUrls: ['./circle.component.less'],\n    standalone: false\n})\nexport class CircleComponent {\n  @Input() progressColor!: string;\n  @Input() fillColor!: string;\n  @Input() value!: string;\n  @Input() isValueVisible!: boolean;\n  @Input() isPercentVisible!: boolean;\n  @Input() textColor!: string;\n  @Input() circularSize!: string;\n  @Input() borderSize!: string;\n\n  constructor() {}\n}\n","<svg viewBox=\"0 0 36 36\" class=\"circular-chart\" [style.height.px]=\"circularSize\" [style.width.px]=\"circularSize\">\n  <path\n    class=\"circle-bg\"\n    [style.strokeWidth]=\"borderSize\"\n    attr.stroke=\"{{ fillColor }}\"\n    stroke-dasharray=\"100, 100\"\n    d=\"M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831\"\n  />\n  <path\n    *ngIf=\"value\"\n    class=\"circle circle-{{ value }}\"\n    stroke-dasharray=\"100, 100\"\n    d=\"M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831\"\n    attr.stroke=\"{{ progressColor }}\"\n    [style.strokeWidth]=\"borderSize\"\n  />\n  <text\n    *ngIf=\"isValueVisible === true && isPercentVisible === true && value\"\n    x=\"50%\"\n    y=\"52%\"\n    font-family=\"Poppins\"\n    font-size=\"9\"\n    font-weight=\"500\"\n    class=\"text\"\n    dominant-baseline=\"middle\"\n    text-anchor=\"middle\"\n    attr.fill=\"{{ progressColor }}\"\n  >\n    {{ value }}%\n  </text>\n  <text\n    *ngIf=\"isValueVisible === true && isPercentVisible !== true && value\"\n    x=\"50%\"\n    y=\"52%\"\n    font-family=\"Poppins\"\n    font-size=\"9\"\n    font-weight=\"500\"\n    class=\"text\"\n    dominant-baseline=\"middle\"\n    text-anchor=\"middle\"\n    attr.fill=\"{{ progressColor }}\"\n  >\n    {{ value }}\n  </text>\n</svg>\n","import { Component, OnDestroy } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { CommonApiService } from '../../shared/services/common-api.service';\n\n@Component({\n    selector: 'overview-performance',\n    templateUrl: './overview-performance.component.html',\n    styleUrls: ['./overview-performance.component.less'],\n    standalone: false\n})\nexport class OverviewPerformanceComponent implements OnDestroy {\n  responsibility: any;\n  unsubscribe: Subject<any> = new Subject();\n\n  constructor(public commonApi: CommonApiService) {\n    this.getResponsibilityDetails();\n  }\n\n  ngOnDestroy(): void {\n    this.unsubscribe.next(null);\n    this.unsubscribe.complete();\n  }\n\n  getResponsibilityDetails() {\n    this.commonApi.responsibilityDetails$\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe({\n        next: (res: any) => {\n          if (res && Object.keys(res).length) {\n            this.responsibility = res;\n          }\n        },\n        error: (err: Error) => {\n          console.error('details error: ', err);\n        },\n      });\n  }\n}\n","<div class=\"qv-overview-performance vx-d-flex vx-align-center vx-justify-between vx-mb-3\">\n    <div class=\"qv-overview-performance-box vx-p-1 vx-pl-2 vx-pr-2 vx-w-100\">\n      <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-2\">OVERALL PERFORMANCE:</div>\n      <div class=\"colums\">\n        <div class=\"progress-group\">\n          <!-- when progress zero then add class progress-zero -->\n          <div class=\"progress\">\n            <app-circle-progress\n              [progressColor]=\"'#9BB62D'\"\n              [fillColor]=\"'#f1f1f1'\"\n              [value]=\"responsibility?.ReportPerformance?.split(',')[0]\"\n              [isValueVisible]=\"true\"\n              [isPercentVisible]=\"true\"\n              [textColor]=\"'#9BB62D'\"\n              [circularSize]=\"'40'\"\n              [borderSize]=\"'4'\"\n            ></app-circle-progress>\n          </div>\n          <div class=\"progress\">\n            <app-circle-progress\n              [progressColor]=\"'#F0B819'\"\n              [fillColor]=\"'#f1f1f1'\"\n              [value]=\"responsibility?.ReportPerformance?.split(',')[1]\"\n              [isValueVisible]=\"true\"\n              [isPercentVisible]=\"true\"\n              [textColor]=\"'#F0B819'\"\n              [circularSize]=\"'40'\"\n              [borderSize]=\"'4'\"\n            ></app-circle-progress>\n          </div>\n          <div class=\"progress\">\n            <app-circle-progress\n              [progressColor]=\"'#C7381B'\"\n              [fillColor]=\"'#f1f1f1'\"\n              [value]=\"responsibility?.ReportPerformance?.split(',')[2]\"\n              [isValueVisible]=\"true\"\n              [isPercentVisible]=\"true\"\n              [textColor]=\"'#C7381B'\"\n              [circularSize]=\"'40'\"\n              [borderSize]=\"'4'\"\n            ></app-circle-progress>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"qv-overview-performance-box vx-p-1 vx-pl-2 vx-pr-2 vx-w-100 vx-ml-2 vx-mr-2\">\n      <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-2\">COMPLIANCE STATUS:</div>\n      <div class=\"colums compliance-status\">\n        <div class=\"progress-group\">\n          <!-- when progress zero then add class progress-zero -->\n          <div class=\"progress\">\n            <app-circle-progress\n            [progressColor]=\"'#9BB62D'\"\n            [fillColor]=\"'#f1f1f1'\"\n            [value]=\"responsibility?.compliance_status_percent?.split(',')[0]\"\n            [isValueVisible]=\"true\"\n            [isPercentVisible]=\"true\"\n            [textColor]=\"'#9BB62D'\"\n            [circularSize]=\"'40'\"\n            [borderSize]=\"'4'\"\n          ></app-circle-progress>\n        </div>\n        <div class=\"progress\">\n          <app-circle-progress\n            [progressColor]=\"'#C7381B'\"\n            [fillColor]=\"'#f1f1f1'\"\n            [value]=\"responsibility?.compliance_status_percent?.split(',')[1]\"\n            [isValueVisible]=\"true\"\n            [isPercentVisible]=\"true\"\n            [textColor]=\"'#C7381B'\"\n            [circularSize]=\"'40'\"\n            [borderSize]=\"'4'\"\n          ></app-circle-progress>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"qv-overview-performance-box vx-p-1 vx-pl-2 vx-pr-2 vx-w-100\">\n      <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-2\">FEEDBACK SCORE:</div>\n      <div *ngIf=\"responsibility?.AvgRating > 0\" class=\"feedback-value vx-fs-12 vx-fw-500\" id=\"feedback-score-details\"><span class=\"vx-fs-18 vx-label-txt\">{{ responsibility?.AvgRating }}</span>/5</div>\n      <span *ngIf=\"responsibility?.AvgRating === 0\" class=\"details vx-fs-12 vx-paragraph-txt\" id=\"feedback-score-null\">--</span>\n    </div>\n</div>","import { Component, OnChanges, OnDestroy, Optional } from '@angular/core';\nimport { CommonApiService } from '../../shared/services/common-api.service';\nimport { Subject, take, takeUntil } from 'rxjs';\nimport { ApiService } from '../../shared/services/api.service';\nimport { AuthorizerService } from '@vcomply/authorizer';\nimport { CommonService } from '../../shared/services/common.service';\nimport { Configurations } from '../../../configuration';\nimport { SnackBarService } from '../../ui-elements/snack-bar/snack-bar.service';\nimport { ActionService } from '../../shared/services/action.service';\nimport { ASSETS } from '../../shared/constants/assets.constants';\n\n@Component({\n    selector: 'overview',\n    templateUrl: './overview.component.html',\n    styleUrls: ['./overview.component.less'],\n    inputs: [\n        'type',\n        'dueDate',\n        'dueDateId',\n        'actionArray',\n        'loader',\n        'isNoData',\n        'id',\n    ],\n    standalone: false\n})\nexport class OverviewComponent implements OnChanges, OnDestroy {\n  ASSETS: any = ASSETS;\n  unsubscribe: Subject<any> = new Subject();\n  logDetails: any;\n  reportDetails: any;\n  type: 'ASSIGNEE' | 'REVIEW' = 'ASSIGNEE';\n  dueDate: number = 0;\n  actionArray: Array<any> = [];\n  dueDateId: string = '';\n  environment: any;\n  disabledAddRecords: boolean = false;\n  actionList: Array<any> = [];\n  loader: boolean = false;\n  isNoData: boolean = false;\n  dueDateDetails: any;\n  id!: number;\n  actionLoader: boolean = true;\n\n  constructor(\n    private commonApiService: CommonApiService,\n    private apiService: ApiService,\n    private authorizer: AuthorizerService,\n    private commonService: CommonService,\n    private snackbarService: SnackBarService,\n    private actionService: ActionService,\n    @Optional() config?: Configurations\n  ) {\n    if (config) this.environment = config.envConfig;\n    this.getResponsibilityDetails();\n    this.refreshLog();\n  }\n\n  ngOnChanges() {\n    if (this.dueDateId) {\n      this.getLogDetails(this.dueDateId);\n    }\n    if (this.type === 'ASSIGNEE') {\n      this.getDueDateList();\n    } else {\n      this.getReviewerDueDateList();\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.unsubscribe.next(null);\n    this.unsubscribe.complete();\n  }\n\n  getResponsibilityDetails() {\n    this.commonApiService.responsibilityDetails$\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe({\n        next: (res: any) => {\n          if (res) {\n            this.reportDetails = res;\n          }\n        },\n        error: (error: Error) => {\n          console.error('error ===>', error);\n        },\n      });\n  }\n\n  getLogDetails(dueDateId: string) {\n    const payload = {\n      start_date: '01-01-2025',\n      end_date: '31-12-2025',\n      selected_cycle_arr: ['01-01-2025-31-12-2025'],\n      selected_cycle: '01-01-2025-31-12-2025',\n      time_filter_type: '',\n    };\n    const url =\n      'compliance_post/?mode=workroomComment/getWorkroomActivities&objId=' +\n      dueDateId;\n    this.apiService.post(url, payload).subscribe({\n      next: (res: any) => {\n        this.logDetails = JSON.parse(JSON.stringify(res));\n      },\n      error: (error: Error) => {\n        console.error('getLogDetails errror =>', error);\n      },\n    });\n  }\n\n  getEditorInfo(event: any) {\n    const DETAILS = {\n      report_id: this.reportDetails.ReportId,\n      duedate_id: this.id,\n      member_id: this.authorizer.getUserId(),\n      root_comment_id: 0,\n      comment: event.comments,\n      attachment_ids: [],\n      get_user_mentioned: event.get_user_mentioned,\n      get_date_mentioned: event.get_date_mentioned,\n    };\n    if (event.fileDetails?.length) {\n      this.uploadFile(event, DETAILS);\n    } else {\n      this.onAddComment(DETAILS);\n    }\n  }\n\n  uploadFile(event: any, details: any) {\n    let counter = 0;\n    let attachmentIds: any = [];\n    event.fileDetails.forEach((files: any) => {\n      const URL = 'compliance_post?mode=complianceReport/fileUpload';\n      this.apiService.post(URL, files).subscribe({\n        next: (res: any) => {\n          if (res.attachment) {\n            counter++;\n            attachmentIds.push(res.attachment_id);\n            if (counter === event.fileDetails.length) {\n              details['attachment_ids'] = attachmentIds;\n              this.onAddComment(details);\n            }\n          }\n        },\n      });\n    });\n  }\n\n  onAddComment(payload: any) {\n    const URL: string = 'compliance_post?mode=workroomComment/addComment';\n    this.apiService.post(URL, payload).subscribe({\n      next: (res: any) => {\n        this.logDetails = undefined;\n        this.getLogDetails(this.dueDateId);\n      },\n      error: (error: Error) => {\n        console.error('onAddComment ==>', error);\n      },\n    });\n  }\n\n  refreshLog() {\n    this.commonService.refreshLog$\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe({\n        next: (res: any) => {\n          this.logDetails = undefined;\n          this.getLogDetails(this.dueDateId);\n        },\n      });\n  }\n\n  addNewRecord() {\n    this.disabledAddRecords = true;\n    const API: string = `compliance/?mode=complianceReport/GenerateOngoingDuedate&ReportId=${this.reportDetails.EncryptedReportId}`;\n    this.apiService\n      .get(API)\n      .pipe(take(1))\n      .subscribe({\n        next: (res: any) => {\n          this.commonService.refreshResponsibility$.next(\n            this.reportDetails.EncryptedReportId\n          );\n          this.disabledAddRecords = false;\n          this.snackbarService.show(\n            'A new due date for completing this responsibility has been added.',\n            'success'\n          );\n        },\n        error: (error: Error) => {\n          this.commonService.showErrorSnackbar();\n        },\n      });\n  }\n\n  getDueDateList() {\n    this.commonApiService.dueDateList$\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe({\n        next: (res: any) => {\n          if (res?.length) {\n            this.dueDateDetails = res.find(\n              (dueDate: any) =>\n                dueDate?.duedate_object_id ===\n                this.reportDetails?.DuedateObjectId\n            );\n            this.actionList = this.actionService.loadActionButtons(\n              this.reportDetails,\n              this.dueDateDetails\n            );\n            this.actionLoader = false;\n          }\n        },\n        error: (error: Error) => {\n          this.commonService.showErrorSnackbar();\n          this.actionLoader = false;\n        },\n      });\n  }\n\n  getReviewerDueDateList() {\n    this.commonApiService.reviewerDueDateList$\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe({\n        next: (res: any) => {\n          if (res?.length) {\n            res = [...new Set(res)];\n            res = this.commonService.changeDueDateJSON(res, 'REVIEWER');\n\n            this.dueDateDetails = res.filter(\n              (ele: any) =>\n                ele.status !== 'closed' &&\n                ['', 'open'].includes(ele.action_status)\n            );\n\n            const dueDate = this.dueDateDetails\n              .filter((ele: any) => ele.status !== 'closed')\n              .sort(\n                (first: any, second: any) =>\n                  first.due_date_timestamp - second.due_date_timestamp\n              );\n            this.actionList = this.actionService.loadReviewerAction(\n              this.reportDetails,\n              dueDate[0]\n            );\n            this.actionLoader = false;\n          }\n        },\n        error: (error: Error) => {\n          this.commonService.showErrorSnackbar();\n          this.actionLoader = false;\n        },\n      });\n  }\n\n  handoverAcceptDecline(type: string) {\n    window.location.href =\n      this.environment.appUrl +\n      'action/compliance?mode=' +\n      type +\n      '&reportId=' +\n      this.reportDetails.EncryptedReportId +\n      '&uId=' +\n      this.authorizer.getMemberId();\n  }\n}\n","<div class=\"qv-overview-area vx-pr-4 vx-pl-4\">\n  <details-loader *ngIf=\"loader\"></details-loader>\n  <ng-container *ngIf=\"!loader\">\n    <overview-performance *ngIf=\"type === 'ASSIGNEE'\"></overview-performance>\n\n    <button *ngIf=\"reportDetails?.Ongoing_start_enable\" [class.disabled]=\"disabledAddRecords\" (click)=\"addNewRecord()\"\n      class=\"new-record-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-pl-2 vx-pr-2 vx-d-flex vx-align-center vx-justify-center\">\n      + Add a new record for this Responsibility\n    </button>\n\n    <div *ngIf=\"\n        reportDetails?.Handover_Accept_Enable == 1 ||\n        reportDetails?.Handover_Decline_Enable === 1\n      \" class=\"handover-area vx-d-flex vx-align-center\">\n      <i class=\"icons transfer-icon vx-fs-16 vx-mr-2\">&#xe933;</i>\n      <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-2\">\n        This responsibility was handed over to you by\n        {{ reportDetails?.handover_data_arr[0]?.handover_by_name }} on\n        {{\n        reportDetails?.handover_data_arr[0]?.handover_on * 1000\n        | date : \"dd MMM y\"\n        }}.\n      </div>\n      <div class=\"vx-d-flex vx-align-center\">\n        <button *ngIf=\"reportDetails?.Handover_Decline_Enable == 1\" (click)=\"handoverAcceptDecline('handover_decline')\"\n          class=\"decline-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">\n          Decline\n        </button>\n        <button *ngIf=\"reportDetails?.Handover_Accept_Enable === 1\" (click)=\"handoverAcceptDecline('handover_accept')\"\n          class=\"accept-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-p-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\">\n          Accept\n        </button>\n      </div>\n    </div>\n\n    <div *ngIf=\"dueDate\" class=\"qv-overview-area-box vx-pb-3\">\n      <div class=\"qv-overview-area-box-top vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-3\">\n        <div class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase\">\n          UPCOMING DUE DATE:\n        </div>\n        <div class=\"vx-fs-11 vx-label-txt\">\n          <span class=\"vx-fw-500\">{{\n            dueDate * 1000 | changeTimezone | date : \"dd MMM y\"\n            }}</span>\n          by {{ dueDate * 1000 | changeTimezone | date : \"h:mm a\" }}\n        </div>\n      </div>\n      <div class=\"action-area vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-3 vx-mb-3\">\n        <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\">\n          ACTION DATE:\n        </div>\n        <div class=\"vx-d-flex vx-align-center\">\n          <ng-container *ngIf=\"!actionLoader; else loadingTemplate\">\n            <button *ngFor=\"let eachAction of actionList; let i = index\" (click)=\"eachAction?.callback()\" class=\"action-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-2 vx-pr-2 vx-ml-1 vx-d-flex vx-align-center vx-justify-center vx-lh-6 {{\n                eachAction?.actionClass\n              }}\">\n              {{ eachAction?.name }}\n            </button>\n          </ng-container>\n        </div>\n      </div>\n      <due-date-log [dueDateDetails]=\"dueDateDetails\" [logDetails]=\"logDetails\" [reportDetails]=\"reportDetails\"\n        [dueDateId]=\"reportDetails?.DuedateObjectId\"></due-date-log>\n      <log-editor *ngIf=\"reportDetails?.read_only_flag != 1\" [dueDateId]=\"reportDetails.DueDateID\"\n        (onSave)=\"getEditorInfo($event)\">\n      </log-editor>\n\n      <ng-template #loadingTemplate>\n        <text-loader></text-loader>\n      </ng-template>\n    </div>\n\n    <ng-content></ng-content>\n    <app-no-data *ngIf=\"isNoData\" [noDataText]=\"\n        'There is no upcoming review due date for this responsibility within the selected Business Cycle.'\n      \" [noDataImage]=\"ASSETS.newActivitylogNodata\">\n    </app-no-data>\n  </ng-container>\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n    selector: 'app-radio',\n    templateUrl: './cs-radio.component.html',\n    styleUrls: ['./cs-radio.component.less'],\n    standalone: false\n})\nexport class CsRadioComponent {\n  @Input() disabled!: boolean;\n  @Input() readonly!: boolean;\n  @Input() name!: string;\n  @Input() checked!: boolean;\n  @Input() value: any;\n  @Output() checkedEvent = new EventEmitter();\n  constructor() {}\n\n  changeState(evt: any) {\n    this.checkedEvent.emit(evt);\n  }\n}\n","<label class=\"radio-item\" [class.readonly]=\"readonly\" aria-label=\"Radio option\">\n  <input type=\"radio\" [disabled]=\"disabled\" [name]=\"name\" [value]=\"value\" [checked]=\"checked\" (change)=\"changeState($event)\" />\n  <span class=\"radio\">\n    <span class=\"inner\"></span>\n  </span>\n  <svg class=\"radiomark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n    <circle class=\"radiomark__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n    <circle class=\"radiomark__check\" cx=\"26\" cy=\"26\" r=\"5\" fill=\"none\" />\n  </svg>\n  <span class=\"value\"><ng-content></ng-content></span>\n</label>\n","import { Component, OnInit } from '@angular/core';\nimport { DialogRef } from '../../ui-dialog/ui-dialog-ref';\n\n@Component({\n    selector: 'feedback-status',\n    templateUrl: './feedback-status.component.html',\n    styleUrls: ['./feedback-status.component.less'],\n    standalone: false\n})\nexport class FeedbackStatusComponent implements OnInit {\n  animation = false;\n\n  constructor(\n    private dialog: DialogRef,\n  ) { }\n\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n  }\n\n  description: any = {\n    mode: 'prime',\n    placeholder: 'Add a reason',\n  };\n\n  onClose(value?: any): void {\n    this.dialog.close(value)\n  }\n\n}\n","<div class=\"form-dialog vx-d-flex vx-align-center vx-justify-center\" [class.animate]=\"animation\">\n    <div class=\"form-dialog-container\">\n        <div class=\"form-dialog-head vx-d-flex vx-align-center vx-justify-between vx-pl-5 vx-pr-5 vx-mb-5\">\n            <div class=\"vx-fs-14 vx-label-txt\">Feedback</div>\n            <button class=\"close-btn vx-fs-14 vx-p-0 vx-m-0 vx-d-flex\" (click)=\"onClose()\"><i class=\"icons\">&#xe9ae;</i></button>\n        </div>\n        <div class=\"form-dialog-body\">\n            <div class=\"form-group vx-mb-5\" [class.disabled]=\"false\">\n                <div class=\"vx-d-flex vx-align-center vx-justify-end vx-mb-1\">\n                    <div class=\"feedback-score vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\">SCORE: <span class=\"vx-txt-red\">3</span> OUT OF 5</div>\n                </div>\n                <div class=\"feedback-option vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-3 vx-mb-2\">\n                    <div class=\"vx-fs-12 vx-paragraph-txt\">Quality</div>\n                    <form>\n                        <ul class=\"status vx-m-0 vx-p-0 vx-d-flex vx-align-center\">\n                            <li class=\"vx-d-block vx-pl-1 vx-pr-1\">\n                                <input type=\"radio\" name=\"radio-group\">\n                                <i class=\"icons vx-fs-20 vx-d-block\">&#xea65;</i>\n                            </li>\n                            <li class=\"vx-d-block vx-pl-1 vx-pr-1\">\n                                <input type=\"radio\" name=\"radio-group\">\n                                <i class=\"icons vx-fs-20 vx-d-block\">&#xea62;</i>\n                            </li>\n                            <li class=\"vx-d-block vx-pl-1 vx-pr-1\">\n                                <input type=\"radio\" name=\"radio-group\">\n                                <i class=\"icons vx-fs-20 vx-d-block\">&#xea63;</i>\n                            </li>\n                            <li class=\"vx-d-block vx-pl-1 vx-pr-1\">\n                                <input type=\"radio\" name=\"radio-group\">\n                                <i class=\"icons vx-fs-20 vx-d-block\">&#xea64;</i>\n                            </li>\n                            <li class=\"vx-d-block vx-pl-1 vx-pr-1\">\n                                <input type=\"radio\" name=\"radio-group\">\n                                <i class=\"icons vx-fs-20 vx-d-block\">&#xea66;</i>\n                            </li>\n                        </ul>\n                    </form>\n                </div>\n                <div class=\"feedback-option vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-3 vx-mb-2\">\n                    <div class=\"vx-fs-12 vx-paragraph-txt\">Accuracy</div>\n                    <form>\n                        <ul class=\"status vx-m-0 vx-p-0 vx-d-flex vx-align-center\">\n                            <li class=\"vx-d-block vx-pl-1 vx-pr-1\">\n                                <input type=\"radio\" name=\"radio-group\">\n                                <i class=\"icons vx-fs-20 vx-d-block\">&#xea65;</i>\n                            </li>\n                            <li class=\"vx-d-block vx-pl-1 vx-pr-1\">\n                                <input type=\"radio\" name=\"radio-group\">\n                                <i class=\"icons vx-fs-20 vx-d-block\">&#xea62;</i>\n                            </li>\n                            <li class=\"vx-d-block vx-pl-1 vx-pr-1\">\n                                <input type=\"radio\" name=\"radio-group\">\n                                <i class=\"icons vx-fs-20 vx-d-block\">&#xea63;</i>\n                            </li>\n                            <li class=\"vx-d-block vx-pl-1 vx-pr-1\">\n                                <input type=\"radio\" name=\"radio-group\">\n                                <i class=\"icons vx-fs-20 vx-d-block\">&#xea64;</i>\n                            </li>\n                            <li class=\"vx-d-block vx-pl-1 vx-pr-1\">\n                                <input type=\"radio\" name=\"radio-group\">\n                                <i class=\"icons vx-fs-20 vx-d-block\">&#xea66;</i>\n                            </li>\n                        </ul>\n                    </form>\n                </div>\n                <div class=\"feedback-option vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-3 vx-mb-2\">\n                    <div class=\"vx-fs-12 vx-paragraph-txt\">Timeliness</div>\n                    <form>\n                        <ul class=\"status vx-m-0 vx-p-0 vx-d-flex vx-align-center\">\n                            <li class=\"vx-d-block vx-pl-1 vx-pr-1\">\n                                <input type=\"radio\" name=\"radio-group\">\n                                <i class=\"icons vx-fs-20 vx-d-block\">&#xea65;</i>\n                            </li>\n                            <li class=\"vx-d-block vx-pl-1 vx-pr-1\">\n                                <input type=\"radio\" name=\"radio-group\">\n                                <i class=\"icons vx-fs-20 vx-d-block\">&#xea62;</i>\n                            </li>\n                            <li class=\"vx-d-block vx-pl-1 vx-pr-1\">\n                                <input type=\"radio\" name=\"radio-group\">\n                                <i class=\"icons vx-fs-20 vx-d-block\">&#xea63;</i>\n                            </li>\n                            <li class=\"vx-d-block vx-pl-1 vx-pr-1\">\n                                <input type=\"radio\" name=\"radio-group\">\n                                <i class=\"icons vx-fs-20 vx-d-block\">&#xea64;</i>\n                            </li>\n                            <li class=\"vx-d-block vx-pl-1 vx-pr-1\">\n                                <input type=\"radio\" name=\"radio-group\">\n                                <i class=\"icons vx-fs-20 vx-d-block\">&#xea66;</i>\n                            </li>\n                        </ul>\n                    </form>\n                </div>\n                <div class=\"feedback-option vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-3 vx-mb-2\">\n                    <div class=\"vx-fs-12 vx-paragraph-txt\">Specificity</div>\n                    <form>\n                        <ul class=\"status vx-m-0 vx-p-0 vx-d-flex vx-align-center\">\n                            <li class=\"vx-d-block vx-pl-1 vx-pr-1\">\n                                <input type=\"radio\" name=\"radio-group\">\n                                <i class=\"icons vx-fs-20 vx-d-block\">&#xea65;</i>\n                            </li>\n                            <li class=\"vx-d-block vx-pl-1 vx-pr-1\">\n                                <input type=\"radio\" name=\"radio-group\">\n                                <i class=\"icons vx-fs-20 vx-d-block\">&#xea62;</i>\n                            </li>\n                            <li class=\"vx-d-block vx-pl-1 vx-pr-1\">\n                                <input type=\"radio\" name=\"radio-group\">\n                                <i class=\"icons vx-fs-20 vx-d-block\">&#xea63;</i>\n                            </li>\n                            <li class=\"vx-d-block vx-pl-1 vx-pr-1\">\n                                <input type=\"radio\" name=\"radio-group\">\n                                <i class=\"icons vx-fs-20 vx-d-block\">&#xea64;</i>\n                            </li>\n                            <li class=\"vx-d-block vx-pl-1 vx-pr-1\">\n                                <input type=\"radio\" name=\"radio-group\">\n                                <i class=\"icons vx-fs-20 vx-d-block\">&#xea66;</i>\n                            </li>\n                        </ul>\n                    </form>\n                </div>\n            </div>\n\n            <div class=\"form-group vx-mb-5\">\n                <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">SET A COMPLIANCE STATUS FOR THIS SUBMISSION</div>\n                <div class=\"status-field vx-d-flex vx-align-center vx-justify-between\">\n                    <div class=\"status-item\">\n                        <app-radio>\n                          <span class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase\">COMPLIANT</span>\n                        </app-radio>\n                      </div>\n                      <div class=\"status-item\">\n                        <app-radio>\n                          <span class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase\">NON-COMPLIANT</span>\n                        </app-radio>\n                    </div>\n                </div>\n            </div>\n            <div class=\"form-group vx-mb-5\">\n                <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">ADD A REASON</div>\n                <vcomply-editor [editorConfig]=\"description\"></vcomply-editor>\n            </div>\n        </div>\n        <div class=\"form-dialog-footer vx-d-flex vx-align-center vx-justify-end vx-pl-4 vx-pr-4 vx-mt-5\">\n            <button class=\"cancel-btn vx-fs-11 vx-fw-500 vx-txt-red vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"onClose()\">Cancel</button>\n            <button class=\"save-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\">Save</button>\n        </div>\n    </div>\n</div>\n","\n\nimport { Component, forwardRef, Provider } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nconst CHECKBOX_VALUE_ACCESSOR: Provider = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => CsCheckboxComponent),\n  multi: true,\n};\n\n@Component({\n    selector: 'app-checkbox',\n    templateUrl: './cs-checkbox.component.html',\n    styleUrls: ['./cs-checkbox.component.less'],\n    providers: [CHECKBOX_VALUE_ACCESSOR],\n    inputs: ['disabled', 'checked'],\n    standalone: false\n})\nexport class CsCheckboxComponent implements ControlValueAccessor{\n  disabled !:boolean | any;\n  checked !:boolean | any;\n  onChanged = (value:any) => {};\n  onTouched = () => {};\n\n  writeValue(value: boolean): void {\n    this.checked = value ?? false\n  }\n  registerOnChange(fn: any): void {\n    this.onChanged = fn;\n  }\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n  }\n  valueChanged(){\n \n    this.checked = !this.checked;\n    this.onChanged(this.checked);\n    this.onTouched();\n  }\n}\n","<label class=\"checkbox-item\" [class.disabled]=\"disabled\">\n  <input type=\"checkbox\" [checked]=\"checked\" [disabled]=\"disabled\" (change)=\"valueChanged()\"/>\n  <span class=\"checkbox\">\n    <span class=\"inner\"></span>\n  </span>\n  <svg class=\"checkmark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n    <circle class=\"checkmark__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n    <path class=\"checkmark__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n  </svg>\n  <span class=\"value\"><ng-content></ng-content></span>\n</label>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n    selector: 'app-cs-switch',\n    templateUrl: './cs-switch.component.html',\n    styleUrls: ['./cs-switch.component.less'],\n    standalone: false\n})\nexport class CsSwitchComponent {\n  @Input() disabled!: boolean;\n  @Input() ngValue: any;\n  @Input() value: any;\n  @Output() ngValueChange = new EventEmitter<any>();\n  @Input() tooltipMessage: any;\n  @Input() position: any;\n  constructor() {}\n\n  valueChanged() {\n    this.ngValueChange.emit(this.ngValue);\n  }\n}\n","<label class=\"cs-switch\" [class.top]=\"position == 'top'\">\n  <span class=\"value\">\n    <span [innerHTML]=\"value\" *ngIf=\"value != undefined\"></span>\n  </span>\n  <span class=\"switch\" *ngIf=\"tooltipMessage === '' || tooltipMessage === undefined\">\n    <input type=\"checkbox\" [(ngModel)]=\"ngValue\" (ngModelChange)=\"valueChanged()\" [disabled]=\"disabled\" />\n    <span class=\"switch-box\">\n      <span class=\"switch-ball\"></span>\n    </span>\n  </span>\n  <span\n    class=\"switch\"\n    *ngIf=\"tooltipMessage !== '' && tooltipMessage !== undefined\"\n    [appTooltip]=\"tooltipMessage\"\n    placement=\"bottom-right\"\n    delay=\"0\"\n    type=\"black\"\n    [tooltipMandatory]=\"true\"\n  >\n    <input type=\"checkbox\" [(ngModel)]=\"ngValue\" (ngModelChange)=\"valueChanged()\" [disabled]=\"disabled\" />\n    <span class=\"switch-box\">\n      <span class=\"switch-ball\"></span>\n    </span>\n  </span>\n</label>\n","\nimport {Directive, HostListener} from \"@angular/core\";\n    \n@Directive({\n    selector: '[appStopPropagation]',\n    standalone: false\n})\nexport class StopPropagationDirective\n{\n  @HostListener(\"click\", [\"$event\"])\n  public onClick(event: any): void\n  {\n    event.preventDefault();\n    event.stopPropagation();\n  }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'completion-loader',\n    templateUrl: './completion-loader.component.html',\n    styleUrls: ['./completion-loader.component.less'],\n    standalone: false\n})\nexport class CompletionLoaderComponent {\n\n  constructor() { }\n\n}\n","<div class=\"qv-completion-loader\">\n  <table role=\"presentation\">\n    <tbody>\n      <tr *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]\">\n        <td class=\"serial\">\n          <span class=\"serial\"></span>\n        </td>\n        <td class=\"name\" width=\"50%\">\n          <span class=\"loader\"></span>\n        </td>\n        <td class=\"action\" width=\"50%\">\n          <span class=\"loader\"></span>\n        </td>\n      </tr>\n    </tbody>\n  </table>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'skeleton-loader',\n    templateUrl: './skeleton-loader.component.html',\n    styleUrls: ['./skeleton-loader.component.less'],\n    standalone: false\n})\nexport class SkeletonLoaderComponent {\n\n  constructor() { }\n\n}\n","<div class=\"vx-pl-4 vx-pr-4\">\n  <div class=\"vx-mt-4 vx-mb-4 vx-d-flex vx-justify-end\">\n    <div class=\"loader history-overview-top-right\"></div>\n  </div>\n  <div class=\"history-overview-area-box vx-pb-3\">\n    <div class=\"history-overview-area-box-top vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-3\">\n        <div class=\"loader\" *ngFor=\"let data of [1, 1]\"></div>\n    </div>\n    <table class=\"history-overview-table-loader\" role=\"presentation\">\n      <tbody>\n          <tr>\n              <td class=\"serial\">\n                  <span class=\"serial\"></span>\n              </td>\n              <td class=\"name\" width=\"50%\">\n                  <span class=\"loader\"></span>\n              </td>\n              <td class=\"action\" width=\"50%\">\n                  <span class=\"loader\"></span>\n              </td>\n          </tr>\n      </tbody>\n    </table>\n    <div class=\"history-overview-area-comment vx-p-3 vx-pt-5 vx-pb-0\">\n        <div class=\"comment-item vx-mb-4 vx-d-flex vx-align-center\">\n            <div class=\"loader avatar vx-mr-2\"></div>\n            <div class=\"loader text\"></div>\n        </div>\n        <div class=\"comment-item vx-mb-4 vx-d-flex vx-align-center\">\n            <div class=\"loader avatar vx-mr-2\"></div>\n            <div class=\"loader comment\"></div>\n        </div>\n    </div>\n    <div class=\"loader editor vx-ml-3 vx-mr-3\"></div>\n    <table class=\"history-overview-table-loader\" role=\"presentation\">\n      <tbody>\n          <tr *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]\">\n              <td class=\"serial\">\n                  <span class=\"serial\"></span>\n              </td>\n              <td class=\"name\" width=\"50%\">\n                  <span class=\"loader\"></span>\n              </td>\n              <td class=\"action\" width=\"50%\">\n                  <span class=\"loader\"></span>\n              </td>\n          </tr>\n      </tbody>\n    </table>\n  </div>\n</div>","import { Component, OnDestroy, Optional } from '@angular/core';\nimport { FeedbackStatusComponent } from '../../ui-elements/action-dialog/feedback-status/feedback-status.component';\nimport { DialogRef } from '../../ui-elements/ui-dialog/ui-dialog-ref';\nimport { DialogDataService } from '../../ui-elements/ui-dialog/ui-dialog.service';\nimport { CommonApiService } from '../../shared/services/common-api.service';\nimport { Subject, takeUntil } from 'rxjs';\nimport { CommonService } from '../../shared/services/common.service';\nimport { ApiService } from '../../shared/services/api.service';\nimport { FilesService } from '../../shared/services/files.service';\nimport { Configurations } from '../../../configuration';\nimport { AuthorizerService } from '@vcomply/authorizer';\nimport { ActionService } from '../../shared/services/action.service';\nimport { ASSETS } from '../../shared/constants/assets.constants';\n\n@Component({\n    selector: 'completion-history',\n    templateUrl: './completion-history.component.html',\n    styleUrls: ['./completion-history.component.less'],\n    standalone: false\n})\nexport class CompletionHistoryComponent implements OnDestroy {\n  ASSETS: any = ASSETS;\n  hideSubTable = false;\n  hideFirstComment = false;\n  hideFirstReply = false;\n  hideSecondComment = false;\n  hideSecondReply = false;\n  dueDateList: Array<any> = [];\n  reportDetails: any;\n  openedDueDate: Array<number> = [];\n  environment: any;\n  description: any = {\n    mode: 'prime',\n    placeholder:\n      'Add a comment. (Use @ to mention a specific person and # to select a specific due date)',\n    link: true,\n    file: true,\n    buttonName: 'Comment',\n  };\n\n  firstReplyDescription: any = {\n    mode: 'prime',\n    placeholder: 'Add a comment.',\n    link: true,\n    file: true,\n    buttonName: 'Comment',\n  };\n\n  secondReplyDescription: any = {\n    mode: 'prime',\n    placeholder: 'Add a comment.',\n    link: true,\n    file: true,\n    buttonName: 'Comment',\n  };\n  isFilterApplied: boolean = false;\n\n  TYPES_OF_FILTER = ['All due dates', 'Completed', 'Delayed', 'Not completed'];\n  appliedFilter: Array<number> = [0];\n  showFilter: boolean = false;\n  enableHistory: 'ASSIGNEE' | 'REVIEWER' = 'ASSIGNEE';\n  reviewerStatus: any = {\n    COMPLY: ['Completed', 'success'],\n    FAILED: ['Not Completed', 'failed'],\n    DELAY: ['Delayed', 'partially-completed'],\n    DEFAULT: ['--', ''],\n  };\n  actionList: Array<any> = [];\n  unsubscribe: Subject<any> = new Subject();\n  currentSortStatus = -1;\n  loader: boolean = true;\n  isAnyData: boolean = false;\n\n  constructor(\n    private dialog: DialogRef,\n    private dialogOpen: DialogDataService,\n    public commonApiService: CommonApiService,\n    private commonService: CommonService,\n    private apiService: ApiService,\n    private fileService: FilesService,\n    private authorizer: AuthorizerService,\n    private actionService: ActionService,\n    @Optional() config?: Configurations\n  ) {\n    if (config) this.environment = config.envConfig;\n    this.getReportDetails();\n    this.getAssigneeDueDateList(0);\n    this.refreshLog();\n  }\n\n  ngOnDestroy(): void {\n    this.unsubscribe.next(null);\n    this.unsubscribe.complete();\n  }\n\n  refreshLog(index?: number) {\n    this.commonService.refreshLog$\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe({\n        next: (res: any) => {\n          const index = this.dueDateList.findIndex(\n            (ele: any) => ele._id === res || ele.report_due_date_id === res\n          );\n          this.dueDateList[index]['logDetails'] = undefined;\n          this.getLogDetails(index);\n        },\n      });\n  }\n  showSubTable(dueDate: any, index: number) {\n    if (this.openedDueDate.includes(index)) {\n      this.openedDueDate = this.openedDueDate.filter(\n        (ele: any) => ele !== index\n      );\n    } else {\n      this.openedDueDate = [index];\n\n      if (this.enableHistory === 'ASSIGNEE') {\n        this.dueDateList[index]['actionList'] =\n          this.actionService.loadActionButtons(\n            this.reportDetails,\n            this.dueDateList[index]\n          );\n      } else {\n        this.dueDateList[index]['actionList'] =\n          this.actionService.loadReviewerAction(\n            this.reportDetails,\n            this.dueDateList[index]\n          );\n      }\n      this.getLogDetails(index);\n      if (this.dueDateList[index].isAssessment) {\n        this.getAssessmentDetails(index);\n      }\n    }\n    this.hideSubTable = !this.hideSubTable;\n  }\n\n  feedback() {\n    this.dialogOpen.open(FeedbackStatusComponent, {\n      data: {},\n      position: 'CENTER',\n      background: 'black',\n    });\n  }\n\n  showFirstComment() {\n    this.hideFirstComment = !this.hideFirstComment;\n  }\n\n  showFirstReply() {\n    this.hideFirstReply = !this.hideFirstReply;\n  }\n\n  showSecondComment() {\n    this.hideSecondComment = !this.hideSecondComment;\n  }\n\n  showSecondReply() {\n    this.hideSecondReply = !this.hideSecondReply;\n  }\n  getAssigneeDueDateList(index: number) {\n    this.commonApiService.dueDateList$\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe({\n        next: (res: any) => {\n          if (this.enableHistory === 'ASSIGNEE') {\n            this.isAnyData = res.length > 0;\n          }\n          if (res?.length) {\n            res = [...new Set(this.filterCheck(res))];\n            this.dueDateList = this.commonService.changeDueDateJSON(\n              res,\n              'ASSIGNEE'\n            );\n            if (index < 0) {\n              index = 0;\n            }\n            if (index > -1 && this.reportDetails) {\n              this.openedDueDate = [index];\n              this.dueDateList[index]['actionList'] =\n                this.actionService.loadActionButtons(\n                  this.reportDetails,\n                  this.dueDateList[index]\n                );\n              this.getLogDetails(index);\n              if (this.dueDateList[index].isAssessment) {\n                this.getAssessmentDetails(index);\n              }\n            }\n          }\n        },\n        error: (error: Error) => {\n          this.commonService.showErrorSnackbar();\n        },\n      });\n  }\n\n  getReviewerDueDateList(index: any) {\n    this.commonApiService.reviewerDueDateList$\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe({\n        next: (res: any) => {\n          if (this.enableHistory === 'ASSIGNEE') {\n            this.isAnyData = res.length > 0;\n          }\n          if (res?.length) {\n            this.dueDateList = this.commonService.changeDueDateJSON(\n              res,\n              'REVIEWER'\n            );\n            this.dueDateList[index ?? 0]['actionList'] =\n              this.actionService.loadReviewerAction(\n                this.reportDetails,\n                this.dueDateList[index]\n              );\n            this.getLogDetails(index);\n          }\n        },\n        error: (err: Error) => {\n          this.commonService.showErrorSnackbar();\n        },\n      });\n  }\n\n  viewChange(event: any) {\n    this.currentSortStatus = -1;\n    this.openedDueDate = [];\n    if (event) {\n      this.enableHistory = 'REVIEWER';\n      this.getReviewerDueDateList(0);\n    } else {\n      this.enableHistory = 'ASSIGNEE';\n      this.getAssigneeDueDateList(0);\n    }\n  }\n\n  getReportDetails() {\n    this.commonApiService.responsibilityDetails$\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe({\n        next: (res: any) => {\n          if (res) {\n            this.reportDetails = res;\n          }\n        },\n      });\n  }\n\n  getLogDetails(index: number) {\n    if (this.dueDateList[index]['logDetails']) return;\n\n    const payload = {\n      start_date: '01-01-2025',\n      end_date: '31-12-2025',\n      selected_cycle_arr: ['01-01-2025-31-12-2025'],\n      selected_cycle: '01-01-2025-31-12-2025',\n      time_filter_type: '',\n    };\n\n    const url =\n      'compliance_post/?mode=workroomComment/getWorkroomActivities&objId=' +\n      this.dueDateList[index]._id;\n    this.apiService.post(url, payload).subscribe({\n      next: (res: any) => {\n        this.dueDateList[index]['logDetails'] = res;\n      },\n      error: (error: Error) => {\n        this.commonService.showErrorSnackbar();\n      },\n    });\n  }\n\n  downloadFiles(file: any) {\n    const PATH: string =\n      this.environment.s3Url +\n      this.environment.s3Bucket +\n      '/' +\n      file.file_path +\n      '/' +\n      file.attachment;\n    this.fileService.onDownloadFile(PATH, file.original_filename);\n  }\n\n  getEditorInfo(event: any, index: number) {\n    const DETAILS = {\n      report_id: this.reportDetails.ReportId,\n      duedate_id: this.dueDateList[index].report_due_date_id,\n      member_id: this.authorizer.getUserId(),\n      root_comment_id: 0,\n      comment: event.comments,\n      attachment_ids: [],\n      get_user_mentioned: event.get_user_mentioned,\n      get_date_mentioned: event.get_date_mentioned,\n    };\n    if (event.fileDetails?.length) {\n      this.uploadFile(event, DETAILS, index);\n    } else {\n      this.onAddComment(DETAILS, index);\n    }\n  }\n\n  uploadFile(event: any, details: any, index: number) {\n    let counter = 0;\n    let attachmentIds: any = [];\n    event.fileDetails.forEach((files: any) => {\n      const URL = 'compliance_post?mode=complianceReport/fileUpload';\n      this.apiService.post(URL, files).subscribe({\n        next: (res: any) => {\n          if (res.attachment) {\n            counter++;\n            attachmentIds.push(res.attachment_id);\n            if (counter === event.fileDetails.length) {\n              details['attachment_ids'] = attachmentIds;\n              this.onAddComment(details, index);\n            }\n          }\n        },\n      });\n    });\n  }\n\n  onAddComment(payload: any, index: number) {\n    const URL: string = 'compliance_post?mode=workroomComment/addComment';\n    this.apiService.post(URL, payload).subscribe({\n      next: (res: any) => {\n        this.onUpdateLog(index);\n      },\n      error: (error: Error) => {\n        this.commonService.showErrorSnackbar();\n      },\n    });\n  }\n\n  onUpdateLog(index: number) {\n    this.openedDueDate = [];\n    this.refreshAPI(index);\n  }\n\n  selectedFilter(event: any, index: number) {\n    if (event.target.checked) {\n      this.appliedFilter.push(index);\n      if (index > 0) {\n        this.appliedFilter = this.appliedFilter.filter(\n          (ele: number) => ele !== 0\n        );\n      } else if (index === 0) {\n        this.appliedFilter = [0];\n      }\n    } else {\n      this.appliedFilter = this.appliedFilter.filter(\n        (ele: number) => ele !== index\n      );\n    }\n  }\n\n  onApplyFilter() {\n    this.isFilterApplied = true;\n    this.getAssigneeDueDateList(0);\n  }\n\n  filterCheck(res: any) {\n    let filteredDueDate: Array<any> = [];\n    const filterStatus: any = [];\n    if (!this.appliedFilter.includes(0)) {\n      this.appliedFilter.forEach((ele) => {\n        filterStatus.push(this.TYPES_OF_FILTER[ele].toLowerCase());\n      });\n      filteredDueDate = res.filter((ele: any) => {\n        if (\n          this.appliedFilter.includes(1) &&\n          ele.submit_flag &&\n          !ele.delayed_flag\n        )\n          return ele;\n        if (this.appliedFilter.includes(2) && ele.delayed_flag) return ele;\n        if (this.appliedFilter.includes(3) && ele.failed_flag) return ele;\n      });\n      this.showFilter = false;\n    } else {\n      filteredDueDate = res;\n    }\n\n    return filteredDueDate;\n  }\n\n  onClearFilter() {\n    this.appliedFilter = [0];\n    this.isFilterApplied = false;\n    this.getAssigneeDueDateList(0);\n  }\n\n  // remove filter on due list\n  removeFilter(index: number) {\n    this.appliedFilter = this.appliedFilter.filter((ele) => ele !== index);\n    if (this.appliedFilter.length > 0) {\n      this.onApplyFilter();\n    } else {\n      this.appliedFilter = [0];\n    }\n\n    this.getAssigneeDueDateList(0);\n  }\n\n  getAssessmentDetails(index: number) {\n    const API: string =\n      this.environment.assessmentEnpoint +\n      'assessment/individualResponse&duedateId=' +\n      this.dueDateList[index]._id;\n    this.apiService.getWithoutBaseUrl(API).subscribe({\n      next: (res: any) => {\n        this.dueDateList[index]['assessmentDetails'] = res;\n      },\n      error: (error: Error) => {\n        this.commonService.showErrorSnackbar();\n      },\n    });\n  }\n\n  onDueDateSorting() {\n    this.currentSortStatus *= -1;\n    if (this.currentSortStatus > -1) {\n      this.dueDateList.sort(\n        (firstDueDate: any, secondDueDate: any) =>\n          firstDueDate.due_date_timestamp - secondDueDate?.due_date_timestamp\n      );\n    } else {\n      this.dueDateList.sort(\n        (firstDueDate: any, secondDueDate: any) =>\n          secondDueDate.due_date_timestamp - firstDueDate?.due_date_timestamp\n      );\n    }\n    this.getLogDetails(0);\n  }\n\n  refreshPage() {\n    if (this.enableHistory === 'ASSIGNEE') {\n      this.getAssigneeDueDateList(0);\n    } else {\n      this.getReviewerDueDateList(0);\n    }\n  }\n\n  refreshAPI(index: number) {\n    if (this.enableHistory === 'ASSIGNEE') {\n      this.commonApiService.getDueDateList(\n        this.reportDetails.EncryptedReportId\n      );\n      this.getAssigneeDueDateList(index);\n    } else {\n      this.commonApiService.getReviewerList(\n        this.reportDetails.EncryptedReportId\n      );\n      this.getReviewerDueDateList(index);\n    }\n  }\n}\n","<ng-container *ngIf=\"\n    !commonApiService?.assigneeDueDateLoader &&\n    !commonApiService?.reviewerLoader\n  \">\n  <div *ngIf=\"isAnyData\" class=\"qv-completion-top vx-d-flex vx-align-center vx-justify-between\"\n    [class.with-reviewHistory]=\"\n      reportDetails?.reviewer_flag === 1 &&\n      !(!appliedFilter.includes(0) && isFilterApplied)\n    \">\n    <div *ngIf=\"!appliedFilter.includes(0) && isFilterApplied\"\n      class=\"qv-filter-part vx-d-flex vx-align-center vx-mb-2 vx-pr-4 vx-pl-4\">\n      <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-2\">\n        FILTER BY:\n      </div>\n      <div *ngFor=\"let data of appliedFilter; let i = index\"\n        class=\"qv-filter-item vx-fs-11 vx-label-txt vx-pl-2 vx-pr-2 vx-m-0 vx-mr-1 vx-lh-6 vx-d-flex vx-align-center\">\n        <i (click)=\"removeFilter(data)\" class=\"icons cross-btn vx-mr-1\">&#xe9ae;</i>\n        {{ TYPES_OF_FILTER[data] }}\n      </div>\n      <button (click)=\"onClearFilter()\"\n        class=\"clear-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-ml-2\">\n        Clear Filter\n      </button>\n    </div>\n    <div *ngIf=\"reportDetails?.reviewer_flag === 1\" class=\"vx-d-flex vx-align-center vx-pr-4 vx-pl-4 vx-pt-1 vx-mb-3\">\n      <div class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-mr-2\">\n        SHOW REVIEWER HISTORY\n      </div>\n      <app-cs-switch [ngValue]=\"enableHistory === 'REVIEWER'\" (ngValueChange)=\"viewChange($event)\"></app-cs-switch>\n    </div>\n  </div>\n  <div class=\"qv-completion-history-table vx-pr-4 vx-pl-4\"\n    [class.with-filter]=\"!appliedFilter.includes(0) && isFilterApplied\"\n    [class.with-reviewHistory]=\"reportDetails?.reviewer_flag === 1\">\n    <div *ngIf=\"isAnyData\" class=\"table-header\">\n      <div class=\"table-row\">\n        <div\n          class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n          #\n        </div>\n        <div\n          class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center due-date\">\n          <span (click)=\"onDueDateSorting()\" class=\"sorting vx-fs-9 vx-txt-blue vx-mr-1\"><i\n              class=\"icons\">&#xeaf0;</i></span>\n          DUE DATE\n          <button *ngIf=\"enableHistory === 'ASSIGNEE'\" appPopover (click)=\"filterPopup.popover()\" placement=\"right\"\n            class=\"qv-filter-btn vx-d-flex vx-align-center\" [class.active]=\"isFilterApplied\">\n            <i class=\"icons filter-icon vx-fs-9 vx-txt-blue\">&#xe924;</i>\n            <i class=\"icons arrow-icon vx-fs-8 vx-paragraph-txt vx-ml-1\">&#xe9e8;</i>\n          </button>\n          <app-popover #filterPopup [dontCloseonClick]=\"true\">\n            <div class=\"qv-quick-filter-box\">\n              <div class=\"qv-quick-filter-top vx-fs-12 vx-label-txt vx-text-center vx-lh-6\">\n                <i class=\"icons\">&#xe924;</i>\n              </div>\n              <div class=\"qv-quick-filter-body\">\n                <ul class=\"vx-p-0 vx-m-0\">\n                  <li *ngFor=\"let filter of TYPES_OF_FILTER; let i = index\" class=\"vx-p-2 vx-d-flex vx-align-center\">\n                    <app-checkbox [checked]=\"appliedFilter.includes(i)\" (change)=\"selectedFilter($event, i)\">\n                      <span class=\"vx-fs-12 vx-paragraph-txt vx-tt-none\">{{\n                        filter | titlecase\n                        }}</span>\n                    </app-checkbox>\n                  </li>\n                </ul>\n              </div>\n              <div class=\"qv-quick-filter-bottom vx-d-flex vx-align-center vx-justify-end vx-p-1\">\n                <button [class.disabled]=\"!appliedFilter.length\" [disabled]=\"!appliedFilter.length\"\n                  (click)=\"onApplyFilter(); filterPopup.closePopover('top')\"\n                  class=\"apply-btn vx-fs-10 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center vx-lh-5\">\n                  APPLY\n                </button>\n              </div>\n            </div>\n          </app-popover>\n        </div>\n        <div\n          class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action-date\">\n          ACTION DATE\n        </div>\n        <div\n          class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center status\"\n          [class.with-checkpoint]=\"\n            (reportDetails?.IsCheckpoint ||\n              reportDetails?.IsAssessment ||\n              reportDetails?.checkpoint_flag) &&\n            !reportDetails?.reviewer_flag\n          \" [class.with-reviewStatus]=\"\n            reportDetails?.reviewer_flag === 1 &&\n            !reportDetails?.IsCheckpoint &&\n            !reportDetails?.IsAssessment\n          \" [class.without-checkpoint-reviewStatus]=\"\n            !(\n              reportDetails?.IsCheckpoint ||\n              reportDetails?.IsAssessment ||\n              reportDetails?.checkpoint_flag\n            ) && reportDetails?.reviewer_flag !== 1\n          \">\n          STATUS\n        </div>\n        <div *ngIf=\"\n            reportDetails?.IsCheckpoint ||\n            reportDetails?.IsAssessment ||\n            reportDetails?.checkpoint_flag\n          \"\n          class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center checkpoints\">\n          CHECKPOINTS\n        </div>\n        <div *ngIf=\"reportDetails?.reviewer_flag === 1\"\n          class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center review-status\">\n          REVIEW {{ enableHistory === \"REVIEWER\" ? \"RESULT\" : \"STATUS\" }}\n        </div>\n        <div\n          class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center attachment\">\n          ATTACHMENT\n        </div>\n        <div\n          class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\">\n        </div>\n      </div>\n    </div>\n    <div class=\"table-body\">\n      <completion-loader *ngIf=\"\n          commonApiService?.assigneeDueDateLoader ||\n          commonApiService?.reviewerLoader\n        \"></completion-loader>\n      <ng-container *ngFor=\"let dueDate of dueDateList; let i = index\">\n        <div class=\"table-row clickable\" (click)=\"showSubTable(dueDate, i)\">\n          <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n            <div class=\"sr-no\" [appTooltip]=\"'1'\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n              {{ i + 1 }}\n            </div>\n            <div *ngIf=\"dueDate?.Is_time_extension_done\" class=\"extended-label vx-fs-9 vx-txt-blue vx-tt-uppercase\">\n              EXTENDED\n            </div>\n          </div>\n          <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center due-date\">\n            <div class=\"vx-d-block\">\n              <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4\">\n                {{ dueDate?.dueDate }}\n              </div>\n              <div class=\"vx-fs-10 vx-paragraph-txt vx-mt-1 vx-lh-4\">\n                <em>by {{ dueDate?.dueTime }}</em>\n              </div>\n            </div>\n          </div>\n          <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action-date\">\n            <div class=\"vx-d-block\">\n              <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4\">\n                {{ dueDate?.actionDate ? dueDate?.actionDate : \"--\" }}\n              </div>\n              <div *ngIf=\"dueDate?.actionDate\" class=\"vx-fs-10 vx-paragraph-txt vx-mt-1 vx-lh-4\">\n                <em>at {{ dueDate?.actionTime }}</em>\n              </div>\n            </div>\n          </div>\n          <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center status\" [class.with-checkpoint]=\"\n              (reportDetails?.IsCheckpoint ||\n                reportDetails?.IsAssessment ||\n                reportDetails?.checkpoint_flag) &&\n              !reportDetails?.reviewer_flag\n            \" [class.with-reviewStatus]=\"\n              reportDetails?.reviewer_flag === 1 &&\n              !reportDetails?.IsCheckpoint &&\n              !reportDetails?.IsAssessment\n            \" [class.without-checkpoint-reviewStatus]=\"\n              !(\n                reportDetails?.IsCheckpoint ||\n                reportDetails?.IsAssessment ||\n                reportDetails?.checkpoint_flag\n              ) && reportDetails?.reviewer_flag !== 1\n            \" appStopPropagation>\n            <div class=\"vx-d-block\">\n              <div\n                class=\"status-value vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-lh-4 vx-d-flex vx-align-center\"\n                [class.vx-pl-2]=\"dueDate?.status != '--'\" [ngClass]=\"dueDate?.statusClass\">\n                {{ dueDate?.status }}\n                <i *ngIf=\"\n                    enableHistory === 'REVIEWER' &&\n                    dueDate?.status &&\n                    dueDate?.status != '--' &&\n                    dueDate?.status !== 'closed'\n                  \" appPopover (click)=\"status.popover()\" placement=\"left\"\n                  class=\"icons cursor-pointer vx-fs-12 vx-txt-blue vx-ml-2\">&#xe932;</i>\n                <i *ngIf=\"dueDate?.status === 'closed'\" class=\"icons cursor-pointer vx-fs-12 vx-txt-blue vx-ml-2\"\n                  [appTooltip]=\"\n                    'The workflow was modified and hence this due date has been closed.'\n                  \" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\">\n                  &#xeb16;\n                </i>\n                <ng-container *ngIf=\"dueDate?.failed_flag || dueDate?.submit_flag\">\n                  <div *ngIf=\"dueDate?.rating > 0\"\n                    class=\"status-number vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-pl-1 vx-pr-1 vx-lh-4 vx-ml-2\">\n                    {{ dueDate?.rating }} / 5\n                  </div>\n                  <button *ngIf=\"!dueDate?.rating && dueDate.Feedback_Enable && false\"\n                    [class.disabled]=\"!dueDate?.Feedback_Enable\" (click)=\"feedback()\"\n                    class=\"feedback-btn vx-fs-9 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-ml-2 vx-d-flex vx-align-center vx-justify-center vx-lh-4\">\n                    FEEDBACK\n                  </button>\n                </ng-container>\n              </div>\n              <div *ngIf=\"dueDate?.compliantStatus\"\n                class=\"vx-fs-10 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-mt-1 vx-pl-2 vx-lh-4\">\n                {{ dueDate?.compliantStatus }}\n              </div>\n\n              <app-popover #status>\n                <div class=\"status-card vx-p-2\">\n                  <div class=\"status-box-type with-line\">\n                    <div class=\"status-box-top vx-mt-2 vx-text-left\">\n                      <div class=\"status-heading vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-lh-4\">\n                        Workflow Type:\n                      </div>\n                      <div class=\"status-details vx-fs-11 vx-paragraph-txt vx-lh-3\">\n                        {{\n                        dueDate?.review_type === \"SEQUENTIAL\"\n                        ? \"Sequential\"\n                        : \"Any Reviewer\"\n                        }}\n                      </div>\n                    </div>\n                    <div class=\"status-box-list\">\n                      <ul class=\"vx-p-0 vx-m-0\">\n                        <li class=\"vx-d-flex vx-align-center vx-pt-2 vx-pb-2\" *ngFor=\"\n                            let reviewer of dueDate?.review_result_data;\n                            let j = index\n                          \">\n                          <div *ngIf=\"dueDate?.review_type !== 'SEQUENTIAL'\" class=\"status-dot vx-mr-2\"></div>\n                          <div *ngIf=\"dueDate?.review_type == 'SEQUENTIAL'\"\n                            class=\"status-no vx-fs-10 vx-fw-500 vx-txt-white vx-lh-4 vx-text-center vx-mr-1\">\n                            {{ j + 1 }}\n                          </div>\n                          <avatar [userDetails]=\"reviewer | getUserProfile : ''\"></avatar>\n                          <div class=\"status-info vx-pr-1\">\n                            <div class=\"status-user-name vx-fs-12 vx-paragraph-txt vx-text-left\"\n                              [appTooltip]=\"reviewer?.member_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\"\n                              [tooltipMandatory]=\"false\">\n                              {{ reviewer?.member_name }}\n                            </div>\n                          </div>\n                          <div\n                            class=\"status-label vx-fs-9 vx-fw-500 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-3 vx-text-center\"\n                            [ngClass]=\"\n                              reviewerStatus[\n                                reviewer?.action_status\n                                  ? reviewer?.action_status\n                                  : 'DEFAULT'\n                              ][1]\n                            \">\n                            {{\n                            reviewerStatus[\n                            reviewer?.action_status\n                            ? reviewer?.action_status\n                            : \"DEFAULT\"\n                            ][0]\n                            }}\n                          </div>\n                        </li>\n                      </ul>\n                    </div>\n                  </div>\n                </div>\n              </app-popover>\n            </div>\n          </div>\n          <div *ngIf=\"\n              reportDetails?.IsCheckpoint ||\n              reportDetails?.IsAssessment ||\n              reportDetails?.checkpoint_flag\n            \" class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center checkpoints\">\n            <ng-container *ngIf=\"dueDate?.checkpoint_score\">\n              <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">\n                {{ dueDate?.checkpoint_score?.split(\"/\")[0] }}\n              </div>\n              <div class=\"total-value vx-fs-10 vx-fw-500\">\n                /{{ dueDate?.checkpoint_score?.split(\"/\")[0] }}\n              </div>\n            </ng-container>\n            <div class=\"vx-fs-11 vx-paragraph-txt\" *ngIf=\"!dueDate?.checkpoint_score\">\n              --\n            </div>\n          </div>\n          <div *ngIf=\"reportDetails?.reviewer_flag === 1\"\n            class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center review-status\" appStopPropagation>\n            <div\n              class=\"status-value vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-lh-4 vx-pl-2 vx-d-flex vx-align-center\"\n              [ngClass]=\"dueDate?.review_status | lowercase\">\n              {{ dueDate?.review_status ? dueDate?.review_status : \"--\" }}\n              <i *ngIf=\"dueDate?.review_status\" appPopover (click)=\"reviewStatus.popover()\" placement=\"right\"\n                class=\"icons cursor-pointer vx-fs-12 vx-txt-blue vx-ml-2\">&#xe932;</i>\n            </div>\n\n            <app-popover #reviewStatus>\n              <div class=\"status-card vx-p-2\">\n                <div class=\"status-box-type with-line\">\n                  <div class=\"status-box-top vx-mt-2 vx-text-left\">\n                    <div class=\"status-heading vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-lh-4\">\n                      Workflow Type:\n                    </div>\n                    <div class=\"status-details vx-fs-11 vx-paragraph-txt vx-lh-3\">\n                      {{\n                      dueDate?.review_type === \"SEQUENTIAL\"\n                      ? \"Sequential\"\n                      : \"Any Reviewer\"\n                      }}\n                    </div>\n                  </div>\n                  <div class=\"status-box-list\">\n                    <ul class=\"vx-p-0 vx-m-0\">\n                      <li class=\"vx-d-flex vx-align-center vx-justify-between vx-pt-2 vx-pb-2\" *ngFor=\"\n                          let reviewer of dueDate?.review_result_data;\n                          let j = index\n                        \">\n                        <div *ngIf=\"dueDate?.review_type !== 'SEQUENTIAL'\" class=\"status-dot vx-mr-2\"></div>\n                        <div *ngIf=\"dueDate?.review_type == 'SEQUENTIAL'\"\n                          class=\"status-no vx-fs-10 vx-fw-500 vx-txt-white vx-lh-4 vx-text-center vx-mr-1\">\n                          {{ j + 1 }}\n                        </div>\n                        <avatar [userDetails]=\"reviewer | getUserProfile : ''\"></avatar>\n                        <div class=\"status-info review-status-info vx-pr-1\">\n                          <div class=\"status-user-name vx-fs-12 vx-paragraph-txt vx-text-left\"\n                            [appTooltip]=\"reviewer?.member_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\"\n                            [tooltipMandatory]=\"false\">\n                            {{ reviewer?.member_name }}\n                          </div>\n                        </div>\n                        <div\n                          class=\"status-label vx-fs-9 vx-fw-500 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-3 vx-text-center\"\n                          [ngClass]=\"reviewer?.result_status | lowercase\">\n                          {{ reviewer?.result_status }}\n                        </div>\n                      </li>\n                    </ul>\n                  </div>\n                </div>\n              </div>\n            </app-popover>\n          </div>\n          <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center attachment\" appStopPropagation>\n            <ng-container *ngIf=\"dueDate?.attachments?.length > 0\">\n              <div class=\"attachment-item vx-d-flex vx-align-center\">\n                <span class=\"file table {{\n                    dueDate?.attachments[0]?.original_filename?.split('.')[\n                      dueDate?.attachments[0]?.original_filename?.split('.')\n                        ?.length - 1\n                    ]\n                  }}\">\n                  <i class=\"icons\">&#xe92e;</i>\n                  <div class=\"format\">\n                    {{\n                    dueDate?.attachments[0]?.original_filename?.split(\".\")[\n                    dueDate?.attachments[0]?.original_filename?.split(\".\")\n                    ?.length - 1\n                    ]\n                    }}\n                  </div>\n                </span>\n                <button (click)=\"downloadFiles(dueDate?.attachments[0])\"\n                  class=\"download-btn vx-fs-10 vx-txt-blue vx-p-0 vx-m-0 vx-d-flex\">\n                  <i class=\"icons\">&#xe91b;</i>\n                </button>\n              </div>\n              <button *ngIf=\"dueDate?.attachments?.length > 1\" appPopover (click)=\"attachmentPopup.popover()\"\n                placement=\"right\"\n                class=\"file-count vx-fs-11 vx-fw-500 vx-txt-blue vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center vx-lh-7\">\n                +{{ dueDate?.attachments?.length - 1 }}\n              </button>\n              <app-popover #attachmentPopup [dontCloseonClick]=\"true\">\n                <div class=\"action-list\">\n                  <ul class=\"action-item\">\n                    <li *ngFor=\"let files of dueDate?.attachments\">\n                      <div class=\"avatar-card\">\n                        <span class=\"file table {{\n                            files?.original_filename?.split('.')[\n                              files?.original_filename?.split('.')?.length - 1\n                            ]\n                          }}\">\n                          <i class=\"icons\">&#xe92e;</i>\n                          <div class=\"format\">\n                            {{\n                            files?.original_filename?.split(\".\")[\n                            files?.original_filename?.split(\".\")?.length - 1\n                            ]\n                            }}\n                          </div>\n                        </span>\n                        <span class=\"value\" [appTooltip]=\"files.original_filename\" placement=\"bottom-left\" delay=\"0\"\n                          type=\"black\" [tooltipMandatory]=\"false\">\n                          {{ files.original_filename }}</span>\n                        <i (click)=\"downloadFiles(files)\"\n                          class=\"icons cursor-pointer vx-fs-12 vx-txt-blue vx-p-0 vx-m-0 vx-ml-2\">&#xe91b;</i>\n                      </div>\n                    </li>\n                  </ul>\n                </div>\n              </app-popover>\n            </ng-container>\n            <div class=\"vx-fs-11 vx-paragraph-txt\" *ngIf=\"!dueDate?.attachments?.length\">\n              --\n            </div>\n          </div>\n          <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\">\n            <button class=\"arrow vx-fs-14 vx-paragraph-txt vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">\n              <i *ngIf=\"!openedDueDate.includes(i)\" class=\"icons\">&#xe970;</i>\n              <i *ngIf=\"openedDueDate.includes(i)\" class=\"icons\">&#xe9e8;</i>\n            </button>\n          </div>\n        </div>\n        <div *ngIf=\"openedDueDate.includes(i)\" class=\"sub-table\">\n          <div *ngIf=\"false\" class=\"qv-dotLoader\">\n            <div class=\"qv-browser-screen-loading-content\">\n              <div class=\"qv-loading-dots dark-gray\">\n                <i></i><i></i><i></i><i></i>\n              </div>\n            </div>\n          </div>\n          <div *ngIf=\"dueDate?.isAssessment\" class=\"individual-response vx-d-flex vx-justify-between vx-mb-5\">\n            <div\n              class=\"overview-box vx-p-2 vx-pl-3 vx-pr-3 vx-mr-1 vx-d-flex vx-align-center vx-justify-between vx-w-100\">\n              <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-lh-4\">\n                TOTAL<br />QUESTIONS:\n              </div>\n              <div class=\"value vx-fs-17 vx-fw-600\" style=\"color: #4681ef\">\n                {{ dueDate?.assessmentDetails?.question_count }}\n              </div>\n            </div>\n            <div\n              class=\"overview-box vx-p-2 vx-pl-3 vx-pr-3 vx-mr-1 vx-d-flex vx-align-center vx-justify-between vx-w-100\">\n              <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-lh-4\">\n                FAILED<br />RESPONSES:\n              </div>\n              <div class=\"value vx-fs-17 vx-fw-600\" style=\"color: #f31c39\">\n                {{ dueDate?.assessmentDetails?.totalFailedResponse }}\n              </div>\n            </div>\n            <div\n              class=\"overview-box vx-p-2 vx-pl-3 vx-pr-3 vx-mr-1 vx-d-flex vx-align-center vx-justify-between vx-w-100\">\n              <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-lh-4\">\n                SKIPPED<br />RESPONSES:\n              </div>\n              <div class=\"value vx-fs-17 vx-fw-600\" style=\"color: #f2bf19\">\n                {{ dueDate?.assessmentDetails?.skippedResponse }}\n              </div>\n            </div>\n            <div\n              class=\"overview-box vx-p-2 vx-pl-3 vx-pr-3 vx-mr-1 vx-d-flex vx-align-center vx-justify-between vx-w-100\">\n              <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-lh-4\">\n                SCORE\n              </div>\n              <div class=\"value score\">\n                <span class=\"vx-fs-17 vx-fw-600\" style=\"color: #ee3939\">{{\n                  dueDate?.assessmentDetails?.totalResponseScore\n                  }}</span>\n                <span class=\"vx-fs-12 vx-fw-600 vx-paragraph-txt\">/{{ dueDate?.assessmentDetails?.totalScore }}</span>\n              </div>\n            </div>\n          </div>\n          <div *ngIf=\"dueDate?.actionList?.length\"\n            class=\"action-area vx-d-flex vx-align-center vx-justify-between vx-mb-3\">\n            <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\"></div>\n            <div class=\"vx-d-flex vx-align-center\">\n              <button *ngFor=\"let eachAction of dueDate?.actionList; let i = index\" (click)=\"eachAction?.callback()\"\n                class=\"action-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-2 vx-pr-2 vx-ml-1 vx-d-flex vx-align-center vx-justify-center vx-lh-6 {{\n                  eachAction?.actionClass\n                }}\">\n                {{ eachAction?.name }}\n              </button>\n            </div>\n          </div>\n          <due-date-log [logDetails]=\"dueDate?.logDetails\" [reportDetails]=\"reportDetails\" [dueDateId]=\"dueDate?._id\"\n            (onSave)=\"onUpdateLog(i)\" [dueDateDetails]=\"dueDate\">\n          </due-date-log>\n          <log-editor *ngIf=\"reportDetails?.read_only_flag != 1\" [dueDateId]=\"dueDateList[i].report_due_date_id\"\n            [id]=\"dueDate?._id\" (onSave)=\"getEditorInfo($event, i)\">\n          </log-editor>\n        </div>\n        <!-- Assignee Changed -->\n        <div *ngIf=\"dueDate?.Is_assignee_change == 1\" class=\"table-row transfer-row\">\n          <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n            <i class=\"icons transfer-icon vx-fs-16\">&#xe933;</i>\n          </div>\n          <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center transfer-column\">\n            <div class=\"vx-fs-11\">\n              <span class=\"vx-fw-500 vx-label-txt vx-mr-1\">THIS RESPONSIBILITY WAS TRANSFERRED TO ACCOUNT:</span>\n              <em class=\"vx-paragraph-txt\">{{ dueDate?.employee_name }} on\n                <span class=\"vx-fw-500\">{{\n                  dueDate?.assignee_change_date * 1000 | date : \"dd MMM y\"\n                  }}</span></em>\n            </div>\n          </div>\n        </div>\n        <!-- Due date Extended -->\n        <div *ngIf=\"\n            dueDate?.Is_time_extension_done == 1 &&\n            dueDate?.due_date_change_arr?.length\n          \" class=\"table-row transfer-row\">\n          <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n            <i class=\"icons transfer-icon vx-fs-16\">&#xe996;</i>\n          </div>\n          <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center transfer-column\">\n            <div class=\"vx-fs-11\">\n              <span class=\"vx-fw-500 vx-label-txt vx-mr-1\">THE\n                <strong>{{\n                  dueDate?.due_date_change_arr[\n                  dueDate.due_date_change_arr.length - 2\n                  ]?.Date\n                  }}</strong>\n                DUE DATE HAS BEEN MODIFIED TO:</span>\n              <em class=\"vx-paragraph-txt\"><strong>{{\n                  dueDate?.due_date_change_arr[\n                  dueDate.due_date_change_arr.length - 1\n                  ]?.Date\n                  }}</strong>\n                by\n                {{\n                dueDate?.due_date_change_arr[\n                dueDate.due_date_change_arr.length - 1\n                ]?.Time\n                }}</em>\n            </div>\n          </div>\n        </div>\n      </ng-container>\n      <app-no-data *ngIf=\"!dueDateList?.length\" [noDataText]=\"\n          'There is no due date for this responsibility within<br>the selected Business Cycle.'\n        \" [noDataImage]=\"ASSETS.newActivitylogNodata\">\n      </app-no-data>\n    </div>\n  </div>\n</ng-container>\n<skeleton-loader *ngIf=\"\n    commonApiService?.assigneeDueDateLoader || commonApiService?.reviewerLoader\n  \"></skeleton-loader>","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'upload-files',\n    templateUrl: './upload-files.component.html',\n    styleUrls: ['./upload-files.component.less'],\n    standalone: false\n})\nexport class UploadFilesComponent {\n\n  constructor() { }\n\n}\n","<p>upload-files works!</p>\n","import { AfterViewInit, Directive, ElementRef, Input, OnInit, OnChanges, SimpleChanges } from '@angular/core';\n@Directive({\n    selector: '[appConditionalFocus]',\n    standalone: false\n})\nexport class ConditionalFocusDirective implements OnChanges {\n  @Input() appConditionalFocus: any = false;\n  constructor(private el: ElementRef) { }\n  ngOnChanges(change:SimpleChanges){\n    if(change['appConditionalFocus'] && change['appConditionalFocus']?.currentValue === true){\n         this.focus();\n    }\n  }\n  ngAfterViewInit() {\n    // Otherwise Angular throws error: Expression has changed after it was checked.\n    this.focus();\n}\nfocus(){\n  if(this.appConditionalFocus){\n    window.setTimeout(() => {\n      this.el.nativeElement.focus();\n  });\n  }\n  }\n}\n","import {\n  Directive,\n  Output,\n  EventEmitter,\n  HostListener,\n} from '@angular/core';\n\n@Directive({\n    selector: '[appDragDropQV]',\n    standalone: false\n})\nexport class DragAndDropDirectiveQV {\n  @Output() onFileDropped = new EventEmitter<any>();\n\n  @HostListener('dragover', ['$event']) onDragOver(evt: any) {\n    evt.preventDefault();\n    evt.stopPropagation();\n  }\n\n  @HostListener('dragleave', ['$event']) public onDragLeave(evt: any) {\n    evt.preventDefault();\n    evt.stopPropagation();\n  }\n\n  @HostListener('drop', ['$event']) public ondrop(evt: any) {\n    evt.preventDefault();\n    evt.stopPropagation();\n    let files = evt.dataTransfer.files;\n    if (files.length > 0) {\n      this.onFileDropped.emit(files);\n    }\n  }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'files-folders-loader',\n    templateUrl: './files-folders-loader.component.html',\n    styleUrls: ['./files-folders-loader.component.less'],\n    standalone: false\n})\nexport class FilesFoldersLoaderComponent {\n\n  constructor() { }\n\n}\n","<div class=\"qv-files-folders-loader vx-pr-4 vx-pb-1\">\n    <div class=\"qv-files-folders-loader-list vx-pr-4\">\n        <div class=\"qv-files-folders-loader-list-item vx-pt-2 vx-pb-2 vx-d-flex vx-align-center vx-justify-between\" *ngFor=\"let data of [1, 1, 1, 1]\">\n            <div class=\"vx-d-flex vx-align-center\">\n                <div class=\"file-icon loader vx-mt-1 vx-mb-1 vx-mr-3\"></div>\n                <div class=\"folder-name\"><div class=\"loader\"></div></div>\n            </div>\n            <div class=\"vx-d-flex vx-align-center\"><div class=\"button-loader loader vx-ml-2\" *ngFor=\"let data of [1, 1]\"></div></div>\n        </div>\n    </div>\n    <div class=\"qv-files-folders-loader-bottom\">\n        <div class=\"file-upload vx-p-4 vx-pl-3 vx-pr-5 vx-d-flex vx-align-center vx-justify-center\">\n            <div class=\"loader\" *ngFor=\"let data of [1, 1]\"></div>\n        </div>\n        <div class=\"create-folder-btn loader vx-mt-1\"></div>\n    </div>\n</div>","import { Component, OnInit, Optional } from '@angular/core';\nimport { UploadFilesComponent } from '../../ui-elements/action-dialog/upload-files/upload-files.component';\nimport { DialogRef } from '../../ui-elements/ui-dialog/ui-dialog-ref';\nimport { DialogDataService } from '../../ui-elements/ui-dialog/ui-dialog.service';\nimport { ApiService } from '../../shared/services/api.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { AuthorizerService } from '@vcomply/authorizer';\nimport { QuickViewService } from '../../shared/services/quick-view.service';\nimport { Configurations } from '../../../configuration';\nimport { FilesService } from '../../shared/services/files.service';\nimport { DialogBoxComponent } from '../../ui-elements/action-dialog/dialog/dialog.component';\nimport { SnackBarService } from '../../ui-elements/snack-bar/snack-bar.service';\nimport { CommonService } from '../../shared/services/common.service';\nimport { CommonApiService } from '../../shared/services/common-api.service';\nimport { ASSETS } from '../../shared/constants/assets.constants';\n\n@Component({\n    selector: 'files-folders',\n    templateUrl: './files-folders.component.html',\n    styleUrls: ['./files-folders.component.less'],\n    inputs: ['responsibility', 'id', 'organizationDetails', 'userDetails'],\n    standalone: false\n})\nexport class FilesFoldersComponent implements OnInit {\n  ASSETS: any = ASSETS;\n  fileList: any[] = [];\n  folderList: any[] = [];\n  breadCrumbArray: any[] = [];\n  breadCrumbNameArray: any[] = [];\n  folderArray: any[] = [];\n  timeLineFolderArray: any[] = [];\n  selectedFile: any[] = [];\n  inEditElement: any = { element: {}, type: '' };\n  organizationDetails!: any;\n  responsibility!: any;\n  id: any;\n  timelineEnabled: boolean = true;\n  createNewFolder: boolean = false;\n  editElement: boolean = false;\n  folderId = 0;\n  environment: any;\n  folderToBeEdited: any;\n  timelineLoader: boolean = true;\n  loader: boolean = true;\n  progressBar: boolean = false;\n  timelineCreateCondition: boolean = true;\n  timelineData: any[] = [];\n  userDetails: any;\n  isManagePermission: any;\n  dueDates: any[] = [];\n  private uploadIdCounter = 0;\n\n  constructor(\n    private dialog: DialogRef,\n    private dialogOpen: DialogDataService,\n    private apiService: ApiService,\n    private authorizer: AuthorizerService,\n    private quickViewService: QuickViewService,\n    private fileService: FilesService,\n    private snackBarService: SnackBarService,\n    private commonService: CommonService,\n    private commonApiService: CommonApiService,\n    @Optional() config?: Configurations\n  ) {\n    if (config) this.environment = config.envConfig;\n  }\n\n  ngOnInit() {\n    this.getResponsibilityFileList();\n    this.getAllFolders();\n    this.clickTimeline();\n    this.getUserPermissionInfo();\n    this.commonApiService.mentionedDate$.subscribe({\n      next: (res: any) => {\n        this.dueDates = res;\n      },\n      error: (err: any) => {},\n    });\n  }\n\n  getUserPermissionInfo() {\n    const subMenuPermission = this.userDetails?.roleActions?.find(\n      (ele: any) => ele.moduleName === 'compliance'\n    )?.subModule;\n    const responsibilities = subMenuPermission.find(\n      (permission: any) =>\n        permission.subModuleName.toLowerCase() === 'responsibilities' &&\n        permission.isActive\n    );\n    this.isManagePermission = responsibilities?.permissions?.find(\n      (ele: any) => ele.code.toUpperCase() === 'CRMR'\n    )?.enable\n      ? true\n      : false;\n  }\n\n  uploadFiles() {\n    this.dialogOpen.open(UploadFilesComponent, {\n      data: {},\n      position: 'CENTER',\n      background: 'black',\n    });\n  }\n\n  getResponsibilityFileList(folderId?: any) {\n    this.loader = true;\n    this.fileList = [];\n    const payload = {\n      report_id: this.responsibility?.ReportId,\n      root_id: folderId ? folderId : 0,\n      due_date_id: 0,\n      start_date: '01-01-2025',\n      end_date: '31-12-2025',\n      selected_cycle_arr: ['01-01-2025-31-12-2025'],\n      selected_cycle: '01-01-2025-31-12-2025',\n      time_filter_type: '',\n    };\n    this.apiService\n      .post(\n        'compliance_post/?mode=workroomComment/getWorkroomFilesAndFolders',\n        payload\n      )\n      .subscribe({\n        next: (res: any) => {\n          this.loader = false;\n          this.fileList = res;\n        },\n        error: (err: any) => {\n          this.loader = false;\n          this.quickViewService.showErrorSnackbar();\n        },\n      });\n  }\n\n  getAllFolders() {\n    this.loader = true;\n    this.timelineEnabled = true;\n    this.folderList = [];\n    this.folderArray = [];\n    this.breadCrumbArray = [];\n    this.breadCrumbNameArray = [];\n    const payload = {\n      start_date: '01-01-2025',\n      end_date: '31-12-2025',\n      selected_cycle_arr: ['01-01-2025-31-12-2025'],\n      selected_cycle: '01-01-2025-31-12-2025',\n      time_filter_type: '',\n    };\n    this.apiService\n      .post(\n        `compliance_post/?mode=complianceReport/getRootFolder&id=${this.responsibility?.ReportId}`,\n        payload\n      )\n      .subscribe({\n        next: (res: any) => {\n          this.loader = false;\n          this.folderList = res;\n          this.breadCrumbArray = [];\n          this.breadCrumbArray.push({\n            root_id: 0,\n            root_name: 'Home',\n            starting_index: this.folderArray.length,\n          });\n          this.breadCrumbNameArray = this.breadCrumbArray.map(\n            (ele: any) => ele.root_name\n          );\n          if (this.folderList?.length === 0) return;\n          this.updateFolderArray(this.folderList);\n        },\n        error: (err: any) => {\n          this.loader = false;\n          this.quickViewService.showErrorSnackbar();\n        },\n      });\n  }\n\n  updateFolderArray(folderList: any) {\n    this.folderArray = [];\n    for (let i = 0; i <= folderList.length - 1; ++i) {\n      this.folderArray.push({\n        _id: folderList[i]?._id,\n        report_id: folderList[i]?.report_id,\n        folder_id: folderList[i]?.folder_id,\n        member_id: folderList[i]?.member_id,\n        folder_name: folderList[i]?.folder_name,\n        root_id: folderList[i]?.root_id,\n        is_active: true,\n        sort_name: folderList[i]?.sort_name,\n        profile_pic: folderList[i]?.profile_pic,\n        member_name: folderList[i]?.member_name,\n        doc_utc: folderList[i]?.doc_utc,\n      });\n    }\n  }\n\n  get activeArray() {\n    return this.folderArray.filter((folder) => folder.is_active === true);\n  }\n\n  clickFolder(folder: any) {\n    this.folderId = folder.folder_id;\n    this.timelineData = [];\n    if (folder?.dueDateId) {\n      this.getTimelineData(folder);\n      return;\n    }\n    this.timelineEnabled = false;\n    this.fileList = [];\n    if (folder?.folder_id > 0) {\n      this.getResponsibilityFileList(folder?.folder_id);\n    }\n    this.breadCrumbArray.push({\n      root_id: folder.folder_id,\n      root_name: folder.folder_name,\n      starting_index: this.folderArray.length,\n    });\n    this.breadCrumbNameArray = this.breadCrumbArray.map(\n      (ele: any) => ele.root_name\n    );\n    this.folderArray.forEach((e: any) => {\n      if (typeof e === 'object') {\n        e.is_active = false;\n      }\n    });\n    this.getSubFolder(folder?._id);\n  }\n\n  getSubFolder(_id?: any) {\n    this.apiService\n      .get(`compliance/?mode=complianceReport/getSubFolder&folderId=${_id}`)\n      .subscribe({\n        next: (res: any) => {\n          this.updateFolderArray(res);\n        },\n        error: (err: any) => {\n          this.quickViewService.showErrorSnackbar();\n        },\n      });\n  }\n\n  breadCrumbClick(row: any, index: any) {\n    if (row.root_name === 'Home') {\n      this.timelineEnabled = true;\n      this.timelineCreateCondition = true;\n      this.refreshFileAndFolderPage();\n    } else if (row.root_name === 'Timeline') {\n      this.clickTimeline(true);\n    } else if (row.root_name !== 'Timeline') {\n      this.timelineEnabled = false;\n      this.getResponsibilityFileList(row?.root_id);\n    }\n    this.folderId = row?.root_id; //TODO Check variable use\n    const folder_index = this.breadCrumbArray[index + 1].starting_index;\n    this.folderArray.splice(folder_index, this.folderArray.length);\n    this.breadCrumbArray.splice(index + 1, this.breadCrumbArray.length);\n    this.breadCrumbNameArray = this.breadCrumbArray.map((ele) => ele.root_name);\n    this.folderArray.forEach((e) => {\n      if (typeof e === 'object') {\n        e.is_active = false;\n      }\n    });\n    this.folderArray.forEach((e) => {\n      if (typeof e === 'object' && e.root_id === row.root_id) {\n        e.is_active = true;\n      }\n    });\n  }\n\n  clickTimeline(clickEvent?: true) {\n    this.loader = true;\n    if (clickEvent) {\n      this.timelineEnabled = false;\n      this.timelineCreateCondition = false;\n    }\n    this.fileList = [];\n    this.breadCrumbArray.push({\n      root_id: 0,\n      root_name: 'Timeline',\n      starting_index: 1,\n    });\n    this.breadCrumbNameArray = this.breadCrumbArray.map(\n      (ele: any) => ele.root_name\n    );\n    this.apiService\n      .post(\n        `compliance_post/?mode=workroomComment/DuedateListForTimeline&reportId=${this.id}`,\n        {}\n      )\n      .subscribe({\n        next: (res: any) => {\n          this.loader = false;\n          this.timelineData = res;\n          if (res.length) {\n            this.timelineLoader = false;\n            if (clickEvent) {\n              this.timelineLoader = true;\n              this.folderArray.forEach((e) => {\n                if (typeof e === 'object') {\n                  e.is_active = false;\n                }\n              });\n              for (let i = 0; i <= res.length - 1; i++) {\n                this.folderArray.push({\n                  _id: res[i]._id,\n                  dueDateId: res[i]._id,\n                  folder_name: res[i].new_due_date,\n                  root_id: 0,\n                  is_active: true,\n                  short_name: res[i].sort_name,\n                  profile_pic: res[i].profile_pic,\n                  member_name: res[i].member_name,\n                  doc_utc: res[i].doc_utc,\n                  timelineFolder: true,\n                });\n              }\n            }\n          } else {\n            this.timelineLoader = true;\n          }\n        },\n        error: (err: any) => {\n          this.loader = false;\n          this.timelineLoader = true;\n          this.quickViewService.showErrorSnackbar();\n        },\n      });\n  }\n\n  getTimelineData(folder: any) {\n    this.loader = true;\n    this.fileList = [];\n    this.breadCrumbArray.push({\n      root_id: folder.folder_id,\n      root_name: folder.folder_name,\n      starting_index: this.folderArray.length,\n    });\n    this.breadCrumbNameArray = this.breadCrumbArray.map(\n      (ele: any) => ele.root_name\n    );\n    this.folderArray.forEach((e) => {\n      if (typeof e === 'object') {\n        e.is_active = false;\n      }\n    });\n    this.apiService\n      .get(\n        `compliance/?mode=workroomComment/TimelineData&duedateId=${folder.dueDateId}`\n      )\n      .subscribe({\n        next: (res: any) => {\n          this.fileList = res;\n          this.loader = false;\n        },\n        error: (err: any) => {\n          this.loader = false;\n          this.quickViewService.showErrorSnackbar();\n        },\n      });\n  }\n\n  //Create button click\n  createFolder(type: any) {\n    this.createNewFolder = true;\n    this.inEditElement = { element: { _id: 0 }, type: type };\n    this.inEditElement.element.is_active = true;\n    this.folderArray.push(this.inEditElement.element);\n  }\n\n  saveFolder(value: any) {\n    this.createNewFolder = false;\n    if (value.type === 'EDIT') {\n      this.updateFolder(value);\n    }\n    if (value.type === 'NEW') {\n      this.saveNewFolder(value);\n    }\n  }\n\n  saveNewFolder(value: any) {\n    const newFolderName: any = this.inEditElement?.element?.folder_name;\n    if (newFolderName?.length > 0) {\n      const RootId =\n        this.breadCrumbArray[this.breadCrumbArray.length - 1].root_id;\n      let payload = {\n        report_id: this.responsibility?.ReportId,\n        root_id: RootId,\n        folder_name: newFolderName,\n      };\n      this.apiService\n        .post(`compliance_post/?mode=complianceReport/createFolder`, payload)\n        .subscribe({\n          next: (res: any) => {\n            if (res) {\n              this.editElement = false;\n              this.updateFolderArray(res);\n              this.refreshFileAndFolderPage();\n              this.snackBarService.show(\n                'The folder has been added successfully.',\n                'success'\n              );\n            }\n          },\n          error: (err: any) => {\n            if (\n              err?.status === 409 &&\n              err?.error?.message.toLowerCase() === 'data already present'\n            ) {\n              this.snackBarService.show(\n                'The folder name already exist.',\n                'alert'\n              );\n            } else {\n              this.quickViewService.showErrorSnackbar();\n            }\n          },\n        });\n    }\n  }\n\n  updateFolder(value: any) {\n    let url: string = `compliance_put/?mode=complianceReport/folderUpdate&objectId=${value.element._id}`;\n    let payload = {\n      root_id: value.element.root_id,\n      report_id: this.responsibility?.ReportId,\n      folder_name: value.element.folder_name,\n    };\n    this.apiService.put(url, payload).subscribe({\n      next: (res: any) => {\n        this.editElement = false;\n        this.updateFolderArray(res);\n        this.getAllFolders();\n        this.inEditElement = { element: {}, type: '' };\n      },\n      error: (err: any) => {\n        console.error(err);\n        this.inEditElement = { element: {}, type: '' };\n        this.quickViewService.showErrorSnackbar();\n      },\n    });\n  }\n\n  // File Uploader 'drop' and 'browse'\n  onFileUpload(files: any, mode: 'BROWSE' | 'DROP') {\n    this.progressBar = true;\n    let currentFiles: any = [];\n    if (mode === 'BROWSE') {\n      currentFiles = files?.files;\n    } else if (mode === 'DROP') {\n      currentFiles = files;\n    }\n\n    for (let i = 0; i <= currentFiles?.length - 1; i++) {\n      const file: any = {\n        file_url_path: '',\n        name: '',\n        org_file: currentFiles[i]?.name,\n        id: this.getUniqueId(),\n      };\n      this.uploadAnAttachment(currentFiles[i], file.id);\n    }\n  }\n\n  // Providing Unique ID while uploading a file.\n  getUniqueId() {\n    const timestampPart = Date.now().toString(36);\n    const randomPartLength = 16;\n\n    if (typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function') {\n      return `${timestampPart}${crypto.randomUUID().replace(/-/g, '')}`;\n    }\n\n    if (typeof crypto !== 'undefined' && typeof crypto.getRandomValues === 'function') {\n      const bytes = new Uint8Array(randomPartLength);\n      crypto.getRandomValues(bytes);\n      const randomPart = Array.from(bytes, (byte) =>\n        (byte % 36).toString(36)\n      ).join('');\n\n      return `${timestampPart}${randomPart}`;\n    }\n\n    this.uploadIdCounter += 1;\n    const monotonicTime = typeof performance !== 'undefined' ? performance.now() : 0;\n    const monotonicPart = `${this.uploadIdCounter.toString(36)}${Math.floor(\n      monotonicTime\n    ).toString(36)}`;\n    return `${timestampPart}${monotonicPart}`;\n  }\n\n  //Uploading the selected files\n  uploadAnAttachment(file: any, id: string) {\n    const formData = new FormData();\n    formData.append('sourcefile', file);\n    const destinationString = `uploads/${this.organizationDetails?.key_admin_email}/workroom/`;\n    this.quickViewService.uploadToNode(formData, destinationString).subscribe({\n      next: (file: any) => {\n        this.progressBar = false;\n        this.selectedFile.push(file);\n      },\n      error: (err: HttpErrorResponse) => {\n        this.progressBar = false;\n        const fileIndex = this.selectedFile.findIndex(\n          (files: any) => files?.id == id\n        );\n        if (fileIndex > -1) {\n          this.selectedFile.splice(fileIndex, 1);\n        }\n      },\n    });\n  }\n\n  // On clicking Upload button. v-comply API call to create document\n  onUploadClick() {\n    if (this.selectedFile.length > 0) {\n      for (let i = 0; i < this.selectedFile.length; i++) {\n        const createFilePayload = {\n          file_path: this.selectedFile[i],\n          report_id: this.responsibility?.ReportId,\n          action_type: 'FOLDER_ATTACHMENT',\n          report_due_date_id: 0,\n          folder_id: this.folderId,\n          member_id: this.authorizer?.getUserId(),\n          start_date: '01-01-2025',\n          end_date: '31-12-2025',\n          selected_cycle_arr: ['01-01-2025-31-12-2025'],\n          selected_cycle: '01-01-2025-31-12-2025',\n          time_filter_type: '',\n        };\n        this.apiService\n          .post(\n            'compliance_post/?mode=complianceReport/fileUpload',\n            createFilePayload\n          )\n          .subscribe({\n            next: (res: any) => {\n              this.refreshFileAndFolderPage();\n            },\n            error: (err: any) => {\n              this.getAllFolders();\n              this.getResponsibilityFileList();\n            },\n          });\n      }\n    }\n    this.selectedFile = [];\n  }\n\n  downloadFile(file: any) {\n    const fileSrc =\n      this.environment.s3Url +\n      this.environment.s3Bucket +\n      '/' +\n      file.file_path +\n      '/' +\n      file.filename;\n    this.fileService.onDownloadFile(fileSrc, file.original_filename);\n  }\n\n  deleteFile(file: any) {\n    let ref = this.dialogOpen\n      .open(DialogBoxComponent, {\n        data: {\n          message: `This action will <strong>delete</strong> this file.\n      .`,\n        },\n        position: 'CENTER',\n        background: 'black',\n      })\n      .afterClosed.subscribe({\n        next: (res: any) => {\n          if (res) {\n            let payload;\n            let URL: string;\n            if ('isEvidence' in file) {\n              URL = `compliance_post/?mode=workroomComment/EvidenceDelete`;\n              payload = {\n                report_id: this.id,\n                due_date_id: file?.due_date_obj_id,\n                evidence_id_arr: [file?.attachment_id],\n                memberName: file?.member_name,\n                isEvidence: file?.isEvidence,\n              };\n            } else {\n              URL = 'compliance_post/?mode=file/remove';\n              payload = {\n                payload: {\n                  action_type: 'FOLDER_ATTACHMENT',\n                  id: file?._id,\n                  path: file?.filename,\n                },\n              };\n            }\n            this.apiService.post(URL, payload).subscribe({\n              next: (res: any) => {\n                this.snackBarService.show(\n                  'File has been deleted successfully.',\n                  'success'\n                );\n                this.getAllFolders();\n                this.getResponsibilityFileList();\n              },\n              error: (error: any) => {\n                this.quickViewService.showErrorSnackbar();\n              },\n            });\n          }\n        },\n      });\n  }\n\n  closeFolder() {\n    if (this.createNewFolder) {\n      this.folderArray.pop();\n    }\n    this.getAllFolders();\n    this.inEditElement = { element: {}, type: '' };\n    this.createNewFolder = false;\n  }\n\n  deleteFolder(folder: any) {\n    let ref = this.dialogOpen\n      .open(DialogBoxComponent, {\n        data: {\n          message: `This action will <strong>delete</strong> this folder.\n      .`,\n        },\n        position: 'CENTER',\n        background: 'black',\n      })\n      .afterClosed.subscribe({\n        next: (res: any) => {\n          let payload = {\n            start_date: '01-01-2025',\n            end_date: '31-12-2025',\n            selected_cycle_arr: ['01-01-2025-31-12-2025'],\n            selected_cycle: '01-01-2025-31-12-2025',\n            time_filter_type: '',\n          };\n          if (res) {\n            const URL: string = `compliance_delete/?mode=complianceReport/folderDelete&objectId=${folder?._id}`;\n            this.apiService.delete(URL).subscribe({\n              next: (res: any) => {\n                this.snackBarService.show(\n                  'Folder has been deleted successfully.',\n                  'success'\n                );\n                this.getAllFolders();\n                this.getResponsibilityFileList();\n              },\n              error: (error: any) => {\n                this.quickViewService.showErrorSnackbar();\n              },\n            });\n          }\n        },\n      });\n  }\n\n  //Edit the name of the folder\n  editFolderName(folder?: any) {\n    this.folderToBeEdited = folder['item_name'];\n    this.editElement = true;\n    this.inEditElement = { element: folder, type: 'EDIT' };\n  }\n\n  // Remove selected files from the preview\n  removePreview(data: any) {\n    this.selectedFile = this.selectedFile.filter(\n      (e: any) => e.name !== data.name\n    );\n  }\n\n  // Closing the preview by clicking on cancel\n  onCancelClick() {\n    this.selectedFile = [];\n  }\n\n  refreshFileAndFolderPage() {\n    this.getResponsibilityFileList();\n    this.getAllFolders();\n    this.clickTimeline();\n  }\n}\n","<files-folders-loader *ngIf=\"false\"></files-folders-loader>\n<div class=\"qv-files-folders vx-pr-4 vx-pl-4\">\n  <!-- Dot loader -->\n  <div *ngIf=\"loader\" class=\"qv-dotLoader\">\n    <div class=\"qv-browser-screen-loading-content\">\n      <div class=\"qv-loading-dots dark-gray\"><i></i><i></i><i></i><i></i></div>\n    </div>\n  </div>\n\n  <!-- Breadcrumb -->\n  <ng-container *ngIf=\"!loader\">\n    <div *ngIf=\"breadCrumbArray.length > 1\" class=\"qv-files-folders-breadcrumb vx-mb-1 vx-lh-4\">\n      <ul class=\"vx-p-0 vx-m-0 vx-d-flex vx-align-center\">\n        <li *ngFor=\"let rootList of breadCrumbArray; let breadIndex = index\"\n          class=\"vx-fs-11 vx-fw-500 vx-txt-blue vx-pr-4\" [appTooltip]=\"breadCrumbNameArray[breadIndex]\"\n          placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\"\n          (click)=\"breadCrumbClick(rootList, breadIndex)\">\n          {{ breadCrumbNameArray[breadIndex] }}\n        </li>\n      </ul>\n    </div>\n    <div class=\"qv-files-folders-list vx-pr-4\" [class.with-upload-file]=\"selectedFile.length > 0\"\n      [class.with-breadcrumb]=\"breadCrumbArray.length > 1\">\n      <!-- No Data -->\n      <app-no-data *ngIf=\"!activeArray?.length && !fileList.length && !timelineData.length\"\n        [noDataImage]=\"ASSETS.filesFolders\" [noDataText]=\"\n          'You do not have any folders or files associated with this responsibility.'\n        \"></app-no-data>\n\n      <ng-container *ngIf=\"!loader\">\n        <!-- Timeline -->\n        <ng-container *ngIf=\"timelineEnabled && !timelineLoader\">\n          <div class=\"qv-files-folders-list-item vx-pt-2 vx-pb-2 vx-d-flex vx-align-center vx-justify-between\">\n            <div class=\"vx-d-flex vx-align-center\">\n              <i class=\"icons folder-icon vx-fs-20 vx-mr-3\">&#xead8;<i class=\"icons star vx-fs-8\">&#xea70;</i></i>\n              <div (click)=\"clickTimeline(true)\" class=\"folder-name vx-fs-13 vx-paragraph-txt\">\n                Timeline\n              </div>\n            </div>\n          </div>\n        </ng-container>\n        <!-- Folders -->\n        <ng-container *ngIf=\"activeArray?.length\">\n          <div *ngFor=\"let folderList of activeArray; let i = index\"\n            class=\"qv-files-folders-list-item vx-pt-2 vx-pb-2 vx-d-flex vx-align-center vx-justify-between\">\n            <div class=\"vx-d-flex vx-align-center\">\n              <i class=\"icons folder-icon vx-fs-20 vx-mr-3\">&#xeade;</i>\n              <div *ngIf=\"inEditElement?.element?._id !== folderList?._id\" (click)=\"clickFolder(folderList)\"\n                class=\"folder-name vx-fs-13 vx-paragraph-txt\" [appTooltip]=\"folderList?.folder_name\"\n                placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\n                {{ folderList?.folder_name }}\n              </div>\n              <input appConditionalFocus=\"true\" *ngIf=\"\n                  inEditElement?.type == 'NEW' &&\n                  inEditElement?.element?._id == 0 &&\n                  folderList._id == 0\n                \" [(ngModel)]=\"inEditElement.element.folder_name\" placeholder=\"Folder Name\" type=\"text\" />\n              <input appConditionalFocus=\"true\" *ngIf=\"\n                  inEditElement?.element?._id == folderList?._id &&\n                  inEditElement.type == 'EDIT' &&\n                  inEditElement?.element?._id !== 0 &&\n                  folderList._id !== 0\n                \" [(ngModel)]=\"inEditElement.element.folder_name\" placeholder=\"Folder Name\" type=\"text\" />\n            </div>\n            <div class=\"vx-d-flex vx-align-center\">\n              <!-- Edit and Delete button -->\n              <ng-container *ngIf=\"\n                  inEditElement?.element?._id !== folderList?._id &&\n                  !folderList?.timelineFolder &&\n                  responsibility?.read_only_flag == 0 &&\n                  isManagePermission\n                \">\n                <button (click)=\"editFolderName(folderList)\"\n                  class=\"edit-btn vx-fs-12 vx-txt-blue vx-p-0 vx-m-0 vx-d-flex vx-align-center\" [appTooltip]=\"'Edit'\"\n                  placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\" [class.disabled]=\"false\">\n                  <i class=\"icons\">&#xe90c;</i>\n                </button>\n                <button (click)=\"deleteFolder(folderList)\"\n                  class=\"delete-btn vx-fs-12 vx-txt-red vx-p-0 vx-ml-3 vx-d-flex vx-align-center\"\n                  [appTooltip]=\"'Delete'\" placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\"\n                  [class.disabled]=\"false\">\n                  <i class=\"icons\">&#xe923;</i>\n                </button>\n              </ng-container>\n              <!-- Save and Close button -->\n              <ng-container *ngIf=\"inEditElement?.element?._id === folderList?._id\">\n                <button (click)=\"saveFolder(inEditElement)\"\n                  class=\"save-btn vx-fs-12 vx-p-0 vx-m-0 vx-d-flex vx-align-center\" [appTooltip]=\"'Save'\"\n                  placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\" [class.disabled]=\"\n                    !inEditElement?.element?.folder_name ||\n                    inEditElement?.element?.folder_name?.trim()?.length == 0\n                  \">\n                  <i class=\"icons\">&#xe9d3;</i>\n                </button>\n                <button (click)=\"closeFolder()\"\n                  class=\"delete-btn vx-fs-12 vx-txt-red vx-p-0 vx-ml-3 vx-d-flex vx-align-center\" [appTooltip]=\"'Close'\"\n                  placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n                  <i class=\"icons\">&#xe9ae;</i>\n                </button>\n              </ng-container>\n            </div>\n          </div>\n        </ng-container>\n        <!-- Files -->\n        <ng-container *ngIf=\"fileList?.length\">\n          <div *ngFor=\"let file of fileList; let j = index\"\n            class=\"qv-files-folders-list-item vx-pt-2 vx-pb-2 vx-d-flex vx-align-center vx-justify-between\">\n            <div class=\"vx-d-flex vx-align-center\">\n              <div class=\"vx-avatar sm vx-mr-2\" [appTooltip]=\"file?.member_name\" placement=\"bottom-left\" delay=\"0\"\n                type=\"black\" [tooltipMandatory]=\"true\">\n                <span *ngIf=\"file?.profile_pic == ''\" class=\"blue\">{{\n                  file?.sort_name\n                  }}</span>\n                <img *ngIf=\"file?.profile_pic !== ''\" [src]=\"file?.profile_pic | profile\" alt=\"\" />\n              </div>\n              <div class=\"file-area vx-paragraph-txt vx-lh-3\" [appTooltip]=\"file?.original_filename\"\n                placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n                <div class=\"file-name vx-fs-12 vx-paragraph-txt vx-d-flex vx-align-center vx-lh-4\">\n                  <span>{{ file?.original_filename.split(\".\")[0] }}</span>\n                </div>\n                <em class=\"vx-fs-10 vx-paragraph-txt vx-lh-4\">{{\n                  (file?.doc_utc ?? file?.doc) * 1000\n                  | changeTimezone\n                  | date : \"dd MMM y\"\n                  }}\n                  {{\n                  (file?.doc_utc ?? file?.doc) * 1000\n                  | changeTimezone\n                  | date : \"h:mm a\"\n                  }}</em>\n              </div>\n            </div>\n            <!-- Download Delete Button -->\n            <div class=\"vx-d-flex vx-align-center\" *ngIf=\"responsibility?.read_only_flag == 0 && isManagePermission\">\n              <button (click)=\"downloadFile(file)\"\n                class=\"edit-btn vx-fs-12 vx-txt-blue vx-p-0 vx-m-0 vx-d-flex vx-align-center\" [appTooltip]=\"'Download'\"\n                placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n                <i class=\"icons\">&#xe91b;</i>\n              </button>\n              <button (click)=\"deleteFile(file)\"\n                class=\"delete-btn vx-fs-12 vx-txt-red vx-p-0 vx-ml-3 vx-d-flex vx-align-center\" [appTooltip]=\"'Delete'\"\n                placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n                <i class=\"icons\">&#xe923;</i>\n              </button>\n            </div>\n          </div>\n        </ng-container>\n      </ng-container>\n    </div>\n    <!-- Dropdown Uploader and Browse Button -->\n    <div class=\"qv-files-folders-bottom vx-mt-2\">\n      <ng-container *ngIf=\"\n          selectedFile.length === 0 &&\n          responsibility?.read_only_flag == 0 &&\n          timelineCreateCondition &&\n          isManagePermission &&\n          responsibility?.notification_pending !== 1\n        \">\n        <div appDragDropQV (onFileDropped)=\"onFileUpload($event, 'DROP')\"\n          class=\"file-upload vx-p-4 vx-pl-3 vx-pr-5 vx-d-flex vx-align-center vx-justify-center\"\n          [class.disabled]=\"!dueDates.length\">\n          <img [src]=\"ASSETS.upload\" alt=\"\" />\n          <div class=\"vx-fs-12 vx-paragraph-txt vx-ml-3 vx-d-flex vx-align-center\">\n            Drop your files here /\n            <div class=\"browse vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-ml-1\">\n              <input (change)=\"onFileUpload($event.target, 'BROWSE')\" type=\"file\" />\n              BROWSE\n            </div>\n          </div>\n          <div class=\"drag-hover\" [class.active]=\"false\">\n            <input type=\"file\" />\n          </div>\n        </div>\n        <!-- Create Folder Button -->\n        <button (click)=\"createFolder('NEW')\"\n          class=\"create-folder-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-mt-1 vx-d-flex vx-align-center vx-justify-center vx-lh-6 vx-w-100\"\n          [class.disabled]=\"createNewFolder || !dueDates.length\">\n          CREATE A FOLDER\n        </button>\n      </ng-container>\n      <!-- File Preview Container -->\n      <ng-container *ngIf=\"selectedFile.length > 0\">\n        <div class=\"upload-area vx-p-4 vx-pt-2\">\n          <div class=\"vx-d-flex vx-align-center vx-justify-between vx-mb-2\">\n            <div class=\"heading vx-fs-12 vx-fw-500 vx-label-txt\">\n              Upload Files\n            </div>\n          </div>\n          <div class=\"upload-item-area\">\n            <div class=\"upload-item vx-d-flex vx-align-center vx-justify-between vx-mb-1\"\n              *ngFor=\"let data of selectedFile\">\n              <div class=\"vx-d-flex vx-align-center\">\n                <span class=\"file table pdf\">\n                  <i class=\"icons\">&#xe92e;</i>\n                  <div class=\"format\">\n                    {{ data?.org_file?.split(\".\")?.pop() }}\n                  </div>\n                </span>\n                <div class=\"file-name vx-fs-12 vx-label-txt vx-d-flex vx-align-center\">\n                  <span [appTooltip]=\"data?.org_file\" placement=\"bottom-left\" delay=\"0\" type=\"black\"\n                    [tooltipMandatory]=\"false\">{{ data?.org_file }}</span>\n                </div>\n              </div>\n              <!-- Unselect button in preview (x) -->\n              <button (click)=\"removePreview(data)\"\n                class=\"delete-btn vx-fs-12 vx-txt-red vx-p-0 vx-mr-1 vx-d-flex vx-align-center\">\n                <i class=\"icons\">&#xe9ae;</i>\n              </button>\n              <!-- Uploading Bar in preview -->\n              <ng-container *ngIf=\"progressBar\">\n                <div class=\"uploading vx-fs-9 vx-paragraph-txt\">\n                  Uploading...\n                </div>\n                <div class=\"progress-bar\">\n                  <div class=\"progress-bar-move\"></div>\n                </div>\n              </ng-container>\n            </div>\n          </div>\n          <!-- Upload Container when File Preview is Open-->\n          <div\n            class=\"after-upload vx-fs-11 vx-paragraph-txt vx-d-flex vx-align-center vx-justify-center vx-pt-3 vx-pb-2 vx-mt-1\">\n            <input (change)=\"onFileUpload($event.target, 'BROWSE')\" type=\"file\" />\n            Do you want insert more files?\n            <span class=\"vx-tt-uppercase vx-pl-1 vx-pr-1\">Drop Files Here</span>\n            /\n            <span class=\"vx-fw-500 vx-txt-blue vx-tt-uppercase vx-pl-1\">Browse</span>\n          </div>\n          <div class=\"vx-d-flex vx-align-center\">\n            <button (click)=\"onCancelClick()\"\n              class=\"cancel-btn vx-fs-11 vx-fw-500 vx-txt-red vx-tt-uppercase vx-p-0 vx-mt-2 vx-d-flex vx-align-center vx-justify-center vx-w-100 vx-lh-6\"\n              [class.disabled]=\"progressBar\">\n              CANCEL\n            </button>\n            <button (click)=\"onUploadClick()\"\n              class=\"upload-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-mt-2 vx-ml-1 vx-d-flex vx-align-center vx-justify-center vx-w-100 vx-lh-6\"\n              [class.disabled]=\"progressBar\">\n              UPLOAD\n            </button>\n          </div>\n        </div>\n      </ng-container>\n    </div>\n  </ng-container>\n</div>","import { Pipe, PipeTransform, SecurityContext } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n    name: 'sanitizeHtml',\n    standalone: false\n})\nexport class SanitizeHtmlPipe implements PipeTransform {\n\n  constructor(private sanitizer: DomSanitizer) {}\n\n  transform(value: string | null | undefined): string | null {\n    if (typeof value !== 'string' || !value.trim()) {\n      return null;\n    }\n\n    const sanitizedHtml = this.sanitizer.sanitize(SecurityContext.HTML, value);\n    if (!sanitizedHtml) {\n      return null;\n    }\n\n    return sanitizedHtml;\n  }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'stripHtml',\n    standalone: false\n})\nexport class StripHtmlPipe implements PipeTransform {\n\n  transform(value: string): string {\n    if(!value) {\n      return '';\n    }\n    const temporalDivElement = document.createElement('div');\n    temporalDivElement.innerHTML = value;\n    return temporalDivElement.textContent || temporalDivElement.innerText || '';\n  }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'readMore',\n    standalone: false\n})\nexport class ReadMorePipe implements PipeTransform {\n  transform(value: string, height: number): boolean {\n    if (!value || !height) {\n      return false;\n    }\n    const elem = document.getElementById(value);\n    return (elem?.scrollHeight ?? 0) > height;\n  }\n}\n","import { Component, OnDestroy, Optional } from '@angular/core';\nimport { CommonApiService } from '../../shared/services/common-api.service';\nimport { Subject, takeUntil } from 'rxjs';\nimport { FilesService } from '../../shared/services/files.service';\nimport { Configurations } from '../../../configuration';\n\n@Component({\n    selector: 'overview-details',\n    templateUrl: './overview-details.component.html',\n    styleUrls: ['./overview-details.component.less'],\n    standalone: false\n})\nexport class OverviewDetailsComponent implements OnDestroy {\n  hideDetails1: boolean = false;\n  hideDetails2: boolean = false;\n  hideSection = false;\n  responsibility: any;\n  overseerArr: Array<any> = [];\n  categoryClass = ['grey', 'green', 'yellow', 'blue'];\n  categoryName = ['Others', 'Regulations', 'Standards', 'Internal Controls'];\n  unsubscribe: Subject<any> = new Subject();\n  riskArray = ['L', 'LM', 'MH', 'H'];\n  customFieldOpenedArray: any[] = [];\n  environment: any;\n  status: any;\n  statusClass: any;\n\n  constructor(\n    public commonApi: CommonApiService,\n    public fileService: FilesService,\n    @Optional() config?: Configurations\n  ) {\n    this.getResponsibilityDetails();\n    if (config) this.environment = config.envConfig;\n  }\n  ngOnDestroy(): void {\n    this.unsubscribe.next(null);\n    this.unsubscribe.complete();\n  }\n\n  showDetails1() {\n    this.hideDetails1 = !this.hideDetails1;\n  }\n\n  showDetails2() {\n    this.hideDetails2 = !this.hideDetails2;\n  }\n\n  showSection() {\n    this.hideSection = !this.hideSection;\n  }\n\n  getResponsibilityDetails() {\n    this.commonApi.responsibilityDetails$\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe({\n        next: (res: any) => {\n          if (res && Object?.keys(res)?.length) {\n            this.responsibility = res;\n            this.getResponsibilityStatus(res);\n            this.getClass(res);\n\n            this.getOverseer(this.responsibility);\n          }\n        },\n        error: (err: Error) => {\n          console.error('details error: ', err);\n        },\n      });\n  }\n\n  getOverseer(reportDetails?: any): void {\n    const ccArr = [\n      ...(reportDetails?.cc ?? []),\n      ...(reportDetails?.failure_cc ?? []),\n    ];\n    this.overseerArr = ccArr;\n  }\n\n  stripHtml(html: any) {\n    // Create a new div element\n    const temporalDivElement = document.createElement('div');\n    // Set the HTML content with the providen\n    temporalDivElement.innerHTML = html;\n    // Retrieve the text property of the element (cross-browser support)\n    return temporalDivElement.textContent || temporalDivElement.innerText || '';\n  }\n\n  showCustomField(index: any) {\n    if (this.customFieldOpenedArray.includes(index)) {\n      this.customFieldOpenedArray = this.customFieldOpenedArray.filter(\n        (ele) => ele != index\n      );\n    } else {\n      this.customFieldOpenedArray.push(index);\n    }\n  }\n\n  getResponsibilityStatus(responsibility: any) {\n    if (\n      responsibility?.reportStatus &&\n      responsibility?.ReportFrequencyType !== '5' &&\n      !(\n        responsibility?.ReportFrequencyType === '6' &&\n        responsibility?.DueDateTimestamp == 0 &&\n        responsibility?.ExpireFlag != 1\n      )\n    ) {\n      this.status = responsibility?.reportStatus?.toUpperCase();\n    } else if (\n      responsibility?.ReportFrequencyType === '6' &&\n      responsibility?.DueDateTimestamp == 0 &&\n      responsibility?.ExpireFlag != 1\n    ) {\n      this.status = responsibility?.notification_pending\n        ? responsibility?.reportStatus\n        : 'ON HOLD';\n    } else if (responsibility?.ReportFrequencyType === '5') {\n      this.status = 'PENDING';\n    }\n  }\n\n  getClass(responsibility: any) {\n    let type = responsibility?.reportStatus;\n    if (\n      responsibility?.ReportFrequencyType === '6' &&\n      responsibility?.DueDateTimestamp == 0 &&\n      responsibility?.ExpireFlag != 1\n    ) {\n      type = responsibility?.notification_pending ? 'in queue' : 'onHold';\n    } else if (responsibility?.ReportFrequencyType === '5') {\n      type = 'pending';\n    }\n    switch (type.toLowerCase()) {\n      case 'lifecycle completed':\n        this.statusClass = 'lifecycle-completed';\n        break;\n      case 'not accepted':\n        this.statusClass = 'not-accepted';\n        break;\n      case 'onhold':\n        this.statusClass = 'on-hold';\n        break;\n      case 'in queue':\n        this.statusClass = 'in-queue';\n        break;\n      default:\n        this.statusClass = type.toLowerCase();\n    }\n  }\n}\n","<div class=\"qv-overview-details\">\n  <div *ngIf=\"!(responsibility?.ControlObjective | stripHtml)\" class=\"vx-d-flex vx-align-center\">\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-2\">\n      OBJECTIVE:\n    </div>\n    <div class=\"details vx-fs-12 vx-paragraph-txt\">--</div>\n  </div>\n  <ng-container *ngIf=\"responsibility?.ControlObjective | stripHtml\">\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n      OBJECTIVE:\n    </div>\n    <div id=\"qv-objective\" class=\"details vx-fs-12 vx-paragraph-txt\" [class.expand]=\"hideDetails1\"\n      [innerHTML]=\"responsibility.ControlObjective | sanitizeHtml\"></div>\n    <div *ngIf=\"'qv-objective' | readMore : 50\" class=\"more-btn vx-d-flex vx-align-center vx-justify-end vx-mt-1\">\n      <button (click)=\"showDetails1()\" class=\"vx-fs-12 vx-fw-500 vx-txt-blue vx-p-0 vx-m-0\">\n        <ng-container *ngIf=\"!hideDetails1 && (responsibility.ControlObjective | stripHtml)\">Read More</ng-container>\n        <ng-container *ngIf=\"hideDetails1\">Show Less</ng-container>\n      </button>\n    </div>\n  </ng-container>\n\n  <div class=\"notes-part vx-mt-2 vx-pt-2 vx-pb-2\">\n    <div *ngIf=\"!(responsibility?.Remarks | stripHtml)\" class=\"vx-d-flex vx-align-center\">\n      <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-2\">\n        NOTES:\n      </div>\n      <div class=\"details vx-fs-12 vx-paragraph-txt\">--</div>\n    </div>\n    <ng-container *ngIf=\"responsibility?.Remarks | stripHtml\">\n      <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n        NOTES:\n      </div>\n      <div id=\"qv-notes\" class=\"details vx-fs-12 vx-paragraph-txt\" [class.expand]=\"hideDetails2\"\n        [innerHTML]=\"responsibility?.Remarks | sanitizeHtml\"></div>\n      <div *ngIf=\"'qv-notes' | readMore : 50\" class=\"more-btn vx-d-flex vx-align-center vx-justify-end vx-mt-1\">\n        <button (click)=\"showDetails2()\" class=\"vx-fs-12 vx-fw-500 vx-txt-blue vx-p-0 vx-m-0\">\n          <ng-container *ngIf=\"!hideDetails2 && (responsibility?.Remarks | stripHtml)\">Read More</ng-container>\n          <ng-container *ngIf=\"hideDetails2\">Show Less</ng-container>\n        </button>\n      </div>\n    </ng-container>\n  </div>\n\n  <div class=\"qv-overview-details-item vx-d-flex vx-align-center vx-pt-2 vx-pb-2\">\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-2\">\n      STATUS:\n    </div>\n    <div class=\"status-label vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\" [ngClass]=\"statusClass\">\n      {{ status }}\n    </div>\n  </div>\n\n  <div class=\"qv-overview-details-item vx-d-flex vx-align-center vx-pt-2 vx-pb-2\">\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-2\">\n      FREQUENCY:\n    </div>\n    <div class=\"vx-fs-11 vx-paragraph-txt\">\n      {{ responsibility?.ReportFrequency }}\n    </div>\n  </div>\n\n  <div class=\"qv-overview-details-item vx-d-flex vx-align-center vx-pt-2 vx-pb-2\">\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-2\">\n      COMPLETION WINDOW:\n    </div>\n    <div *ngIf=\"responsibility?.AdvanceDateTimeStamp > 0\" class=\"vx-fs-11 vx-paragraph-txt\">\n      {{\n      responsibility?.AdvanceDateTimeStamp * 1000\n      | changeTimezone\n      | date : \"dd MMM y\"\n      }}\n      to\n      {{\n      responsibility?.FailedDateTimestamp * 1000\n      | changeTimezone\n      | date : \"dd MMM y\"\n      }}\n    </div>\n    <div *ngIf=\"responsibility?.AdvanceDateTimeStamp === 0\" class=\"vx-fs-11 vx-paragraph-txt\">\n      --\n    </div>\n  </div>\n\n  <div class=\"qv-overview-details-item vx-d-flex vx-align-center vx-pt-2 vx-pb-2\">\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-2\">\n      NEXT DUE DATE:\n    </div>\n    <div *ngIf=\"responsibility?.DueDateTimestamp > 0\" class=\"vx-fs-11 vx-paragraph-txt\">\n      {{\n      responsibility?.DueDateTimestamp * 1000\n      | changeTimezone\n      | date : \"dd MMM y\"\n      }}\n    </div>\n    <div *ngIf=\"responsibility?.DueDateTimestamp === 0\" class=\"vx-fs-11 vx-paragraph-txt\">\n      --\n    </div>\n  </div>\n\n  <div class=\"qv-overview-details-item vx-pt-2 vx-pb-2\">\n    <div *ngIf=\"\n        !responsibility?.report_format?.length &&\n        !responsibility?.link_for_details.length\n      \" class=\"vx-d-flex vx-align-center\">\n      <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-2\">\n        FORMAT:\n      </div>\n      <div class=\"details vx-fs-12 vx-paragraph-txt\">--</div>\n    </div>\n    <ng-container *ngIf=\"\n        responsibility?.report_format?.length ||\n        responsibility?.link_for_details.length\n      \">\n      <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-2\">\n        FORMAT:\n      </div>\n      <div class=\"vx-d-flex vx-align-center\" *ngIf=\"responsibility?.report_format?.length\">\n        <ng-container *ngFor=\"let files of responsibility?.report_format | slice : 0 : 2\">\n          <files [filesArray]=\"[files]\"></files>\n        </ng-container>\n        <button *ngIf=\"responsibility?.report_format?.length > 2\" appPopover (click)=\"formatPopup.popover()\"\n          placement=\"right\"\n          class=\"qv-count vx-fs-11 vx-fw-500 vx-txt-blue vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-mt-1 vx-lh-7\">\n          +{{ (responsibility?.report_format | slice : 2).length }}\n        </button>\n        <app-popover #formatPopup [dontCloseonClick]=\"true\">\n          <div class=\"action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"let files of responsibility?.report_format.slice(2)\">\n                <div class=\"avatar-card\">\n                  <span class=\"file table\" [ngClass]=\"\n                      files?.original_filename?.split('.')[\n                        files.original_filename?.split('.').length - 1\n                      ]\n                    \">\n                    <i class=\"icons\">&#xe92e;</i>\n                    <div class=\"format\">\n                      {{\n                      files?.original_filename?.split(\".\")[\n                      files.original_filename?.split(\".\").length - 1\n                      ]\n                      }}\n                    </div>\n                  </span>\n                  <span class=\"value\" [appTooltip]=\"files?.original_filename\" placement=\"bottom-left\" delay=\"0\"\n                    type=\"black\" [tooltipMandatory]=\"false\">{{ files?.original_filename }}</span>\n                  <i (click)=\"\n                      fileService.onDownloadFile(\n                        environment.s3Url +\n                          environment.s3Bucket +\n                          '/' +\n                          (files.file_path ?? files.filepath) +\n                          (files.attachment || files.filename\n                            ? '/' + (files.attachment ?? files.filename)\n                            : ''),\n                        files.original_filename\n                      )\n                    \" class=\"icons cursor-pointer vx-fs-12 vx-txt-blue vx-p-0 vx-m-0 vx-ml-2\">&#xe91b;</i>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n      </div>\n      <ng-container>\n        <ul style=\"list-style-type: none\">\n          <li *ngFor=\"let link of responsibility?.link_for_details\">\n            <a [href]=\"link\" target=\"_blank\">{{ link }}</a>\n          </li>\n        </ul>\n      </ng-container>\n    </ng-container>\n  </div>\n\n  <ng-container *ngIf=\"hideSection\">\n    <div class=\"qv-overview-details-item vx-d-flex vx-align-center vx-pt-2 vx-pb-2\">\n      <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-2\">\n        PROGRAM:\n      </div>\n      <div *ngIf=\"responsibility?.ReportCategorysArr?.length > 0\" class=\"rc-area vx-d-block vx-mr-2\">\n        <div class=\"rc-name vx-fs-12 vx-label-txt\" [appTooltip]=\"stripHtml(responsibility?.ReportCategorysArr[0])\"\n          placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\n          {{ stripHtml(responsibility?.ReportCategorysArr[0]) }}\n        </div>\n        <div class=\"program-label vx-fs-10 vx-fw-500 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-3\" [ngClass]=\"\n            categoryClass[responsibility?.ReportCategorysType?.split(',')[0]]\n              | lowercase\n          \">\n          {{ categoryName[responsibility?.ReportCategorysType?.split(\",\")[0]] }}\n        </div>\n      </div>\n      <button *ngIf=\"responsibility?.ReportCategorysArr?.length > 1\"\n        class=\"qv-count vx-fs-11 vx-fw-500 vx-txt-blue vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-lh-5\" appPopover\n        (click)=\"programPopup.popover()\" placement=\"right\">\n        + {{ responsibility?.ReportCategorysArr?.length - 1 }}\n      </button>\n      <app-popover #programPopup>\n        <div class=\"action-list\">\n          <ul class=\"action-item\">\n            <li *ngFor=\"\n                let category of responsibility?.ReportCategorysArr | slice : 1;\n                let k = index\n              \">\n              <div class=\"avatar-card\">\n                <div class=\"vx-d-block vx-w-100\">\n                  <span class=\"value\" [appTooltip]=\"stripHtml(category)\" placement=\"bottom-left\" delay=\"0\" type=\"black\"\n                    [tooltipMandatory]=\"false\">{{ stripHtml(category) }}</span>\n                  <div class=\"program-label vx-fs-10 vx-fw-500 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-3\"\n                    [ngClass]=\"\n                      categoryClass[\n                        responsibility?.ReportCategorysType?.split(',')[k + 1]\n                      ]\n                    \">\n                    {{\n                    categoryName[\n                    responsibility?.ReportCategorysType?.split(\",\")[k + 1]\n                    ]\n                    }}\n                  </div>\n                </div>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </app-popover>\n      <ng-container *ngIf=\"!responsibility?.ReportCategorysArr?.length\">--</ng-container>\n    </div>\n\n    <div class=\"qv-overview-details-item vx-d-flex vx-align-center vx-pt-2 vx-pb-2\">\n      <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-2\">\n        RESPONSIBILITY CENTER:\n      </div>\n      <ng-container *ngIf=\"responsibility?.RC_details_array?.length\">\n        <div class=\"rc-area vx-d-block vx-mr-2\">\n          <div class=\"rc-name vx-fs-12 vx-label-txt\" [appTooltip]=\"responsibility?.RC_details_array[0]?.rc_name\"\n            placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\n            {{ responsibility?.RC_details_array[0]?.rc_name }}\n          </div>\n          <div *ngIf=\"responsibility?.RC_details_array[0]?.parent_rc_names?.length\"\n            class=\"within-part vx-d-flex vx-align-center\">\n            <div class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3 vx-txt-blue\">\n              Within\n            </div>\n            <div class=\"within-value vx-fs-11 vx-paragraph-txt\" [appTooltip]=\"\n                responsibility?.RC_details_array[0]?.parent_rc_names\n                  ?.slice()\n                  .reverse()\n                  .join(' < ')\n              \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\n              {{\n              responsibility?.RC_details_array[0]?.parent_rc_names\n              ?.slice()\n              .reverse()\n              .join(\" < \")\n              }}\n            </div>\n          </div>\n        </div>\n        <button\n          *ngIf=\" responsibility?.RC_details_array?.length> 1\"\n                class=\"qv-count vx-fs-11 vx-fw-500 vx-txt-blue vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-lh-5\"\n                appPopover\n                (click)=\"rcPopup.popover()\"\n                placement=\"right\"\n                >\n                +{{ responsibility?.RC_details_array.length - 1 }}\n                </button>\n                <app-popover #rcPopup>\n                  <div class=\"action-list\">\n                    <ul class=\"action-item\">\n                      <li *ngFor=\"\n                  let rc of responsibility?.RC_details_array.slice(\n                    1,\n                    responsibility?.RC_details_array?.length\n                  )\n                \">\n                        <div class=\"avatar-card\">\n                          <div class=\"vx-d-block vx-w-100\">\n                            <span class=\"value\" [appTooltip]=\"rc?.rc_name\" placement=\"bottom-left\" delay=\"0\"\n                              type=\"black\" [tooltipMandatory]=\"false\">\n                              {{ rc?.rc_name }}</span>\n                            <div *ngIf=\"rc?.parent_rc_names?.length\"\n                              class=\"within-part vx-d-flex vx-align-center vx-pr-3\">\n                              <div\n                                class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3 vx-txt-blue\">\n                                Within\n                              </div>\n                              <div class=\"within-value vx-fs-11 vx-paragraph-txt\"\n                                [appTooltip]=\"rc?.parent_rc_names?.join(' < ')\" placement=\"bottom-left\" delay=\"0\"\n                                type=\"black\" [tooltipMandatory]=\"false\">\n                                {{ rc?.parent_rc_names?.join(\" < \") }}\n                      </div>\n                    </div>\n                  </div>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n      </ng-container>\n      <div\n        class=\" details vx-fs-12 vx-paragraph-txt\" *ngIf=\"!responsibility?.RC_details_array?.length\">\n                                  --\n                              </div>\n                            </div>\n\n                            <div class=\"qv-overview-details-item vx-d-flex vx-align-center vx-pt-2 vx-pb-2\">\n                              <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-2\">\n                                REVIEWER:\n                              </div>\n                              <ng-container *ngIf=\"responsibility?.ReviewersDetails?.level1?.reviewers as reviewers\">\n                                <ng-container *ngIf=\"reviewers?.length\">\n                                  <div\n                                    class=\"reviewer-label vx-fs-9 vx-paragraph-txt vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-3 vx-mr-2\">\n                                    {{\n                                    responsibility?.ReviewersDetails?.level1?.type === \"SEQUENTIAL\"\n                                    ? \"Sequential\"\n                                    : \"Any Reviewer\"\n                                    }}\n                                  </div>\n                                  <ng-container>\n                                    <avatar [userDetails]=\"reviewers[0] | getUserProfile : ''\"></avatar>\n                                    <div class=\"vx-d-block vx-ml-1\">\n                                      <div class=\"vx-fs-12 vx-paragraph-txt\">\n                                        {{ reviewers[0]?.member_name }}\n                                      </div>\n                                      <div *ngIf=\"\n                  reviewers[0]?.ReviewerPerformance.split('~')[1].split(\n                    ','\n                  ) as reviewerPerformance\n                \" class=\"performance-value vx-d-flex vx-align-center\">\n                                        <span *ngFor=\"\n                    let performance of reviewerPerformance | slice : 0 : 3\n                  \" class=\"vx-fs-10 vx-fw-500\">{{ performance }}%</span>\n                                      </div>\n                                    </div>\n                                  </ng-container>\n                                  <!-- More that one reviewer -->\n                                  <ng-container *ngIf=\"reviewers?.length > 1\">\n                                    <div class=\"vx-avatar md counter\" appPopover (click)=\"reviewer.popover()\"\n                                      placement=\"left\">\n                                      <span class=\"green\">+{{ reviewers?.length }}</span>\n                                    </div>\n                                    <app-popover #reviewer>\n                                      <div class=\"review-card vx-p-2\">\n                                        <div class=\"review-box-type with-line\">\n                                          <div class=\"review-box-top vx-mt-2 vx-text-left\">\n                                            <div\n                                              class=\"review-heading vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-lh-4\">\n                                              Workflow Type:\n                                            </div>\n                                            <div class=\"review-details vx-fs-11 vx-paragraph-txt vx-lh-3\">\n                                              {{\n                                              responsibility?.ReviewersDetails?.level1?.type ===\n                                              \"SEQUENTIAL\"\n                                              ? \"Sequential\"\n                                              : \"Any Reviewer\"\n                                              }}\n                                            </div>\n                                          </div>\n                                          <div class=\"review-box-list\">\n                                            <ul class=\"vx-p-0 vx-m-0\">\n                                              <li class=\"vx-d-flex vx-align-center vx-pt-2 vx-pb-2\"\n                                                *ngFor=\"let reviewer of reviewers; let i = index\">\n                                                <div *ngIf=\"\n                            responsibility?.ReviewersDetails?.level1?.type !==\n                            'SEQUENTIAL'\n                          \" class=\"review-dot vx-mr-2\"></div>\n                                                <div *ngIf=\"\n                            responsibility?.ReviewersDetails?.level1?.type ===\n                            'SEQUENTIAL'\n                          \" class=\"review-number vx-fs-10 vx-fw-500 vx-txt-white vx-lh-4 vx-text-center vx-mr-1\">\n                                                  {{ i + 1 }}\n                                                </div>\n                                                <avatar [userDetails]=\"reviewer | getUserProfile : ''\"></avatar>\n                                                <div class=\"review-status\">\n                                                  <div class=\"review-user-name vx-fs-12 vx-paragraph-txt vx-text-left\">\n                                                    {{ reviewer?.member_name }}\n                                                  </div>\n                                                  <div *ngIf=\"\n                              reviewer?.ReviewerPerformance.split('~')[1].split(\n                                ','\n                              ) as reviewerPerformance\n                            \" class=\"performance-value vx-d-flex vx-align-center\">\n                                                    <span *ngFor=\"\n                                let performance of reviewerPerformance\n                                  | slice : 0 : 3\n                              \" class=\"vx-fs-10 vx-fw-500\">{{ performance }}%</span>\n                                                  </div>\n                                                </div>\n                                              </li>\n                                            </ul>\n                                          </div>\n                                        </div>\n                                      </div>\n                                    </app-popover>\n                                  </ng-container>\n                                </ng-container>\n\n                                <div class=\"details vx-fs-12 vx-paragraph-txt\" *ngIf=\"!reviewers?.length\">\n                                  --\n                                </div>\n                              </ng-container>\n                            </div>\n\n                            <div class=\"qv-overview-details-item vx-d-flex vx-align-center vx-pt-2 vx-pb-2\">\n                              <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-2\">\n                                OVERSEER:\n                              </div>\n                              <div class=\"vx-avatar-group qv-avatar\" *ngIf=\"overseerArr?.length\">\n                                <ng-container *ngFor=\"let data of overseerArr | slice : 0 : 5\">\n                                  <avatar [userDetails]=\"data | getUserProfile : 'OVERSEER'\"></avatar>\n                                </ng-container>\n                                <div *ngIf=\"overseerArr.length > 5\" class=\"vx-avatar md counter\" appPopover\n                                  (click)=\"overseer.popover()\" placement=\"left\">\n                                  <span class=\"green\">+{{ (overseerArr | slice : 5)?.length }}</span>\n                                </div>\n                                <app-popover #overseer>\n                                  <div class=\"action-list\">\n                                    <ul class=\"action-item\">\n                                      <li *ngFor=\"let data of overseerArr | slice : 5\">\n                                        <div class=\"avatar-card\">\n                                          <avatar [userDetails]=\"data | getUserProfile : 'OVERSEER'\"></avatar>\n                                          <span class=\"value\" [appTooltip]=\"data?.name\" placement=\"bottom-left\"\n                                            delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{ data?.name }}</span>\n                                        </div>\n                                      </li>\n                                    </ul>\n                                  </div>\n                                </app-popover>\n                                <div class=\"details vx-fs-12 vx-paragraph-txt\" *ngIf=\"!overseerArr?.length\">\n                                  --\n                                </div>\n                              </div>\n                              <div class=\"details vx-fs-12 vx-paragraph-txt\" *ngIf=\"!overseerArr?.length\">\n                                --\n                              </div>\n                            </div>\n\n                            <div class=\"qv-overview-details-item vx-d-flex vx-align-center vx-pt-2 vx-pb-2\">\n                              <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-2\">\n                                COLLABORATOR:\n                              </div>\n                              <div class=\"vx-avatar-group qv-avatar\"\n                                *ngIf=\"commonApi.collaboratorList$ | async as collaboratorInfo\">\n                                <ng-container *ngFor=\"let user of collaboratorInfo | slice : 0 : 5\">\n                                  <avatar [userDetails]=\"user | getUserProfile : 'COLLABORATOR'\"></avatar>\n                                </ng-container>\n\n                                <div *ngIf=\"collaboratorInfo?.length > 5\" class=\"vx-avatar md counter\" appPopover\n                                  (click)=\"collaborator.popover()\" placement=\"left\">\n                                  <span class=\"green\">+{{ (collaboratorInfo | slice : 5)?.length }}</span>\n                                </div>\n                                <app-popover #collaborator>\n                                  <div class=\"action-list\">\n                                    <ul class=\"action-item\">\n                                      <li *ngFor=\"let user of collaboratorInfo | slice : 5\">\n                                        <div class=\"avatar-card\"\n                                          *ngIf=\"user | getUserProfile : 'COLLABORATOR' as userDetails\">\n                                          <avatar [userDetails]=\"userDetails\"></avatar>\n                                          <span class=\"value\" [appTooltip]=\"userDetails.name\" placement=\"bottom-left\"\n                                            delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{ userDetails.name\n                                            }}</span>\n                                        </div>\n                                      </li>\n                                    </ul>\n                                  </div>\n                                </app-popover>\n                              </div>\n                            </div>\n\n                            <div class=\"qv-overview-details-item vx-d-flex vx-align-center vx-pt-2 vx-pb-2\">\n                              <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-2\">\n                                RISK:\n                              </div>\n                              <div class=\"risk-status\">\n                                <div class=\"status-box\" [ngClass]=\"responsibility?.ReportRiskClass?.toLowerCase()\">\n                                  {{ riskArray[responsibility?.ReportRiskClassID - 1] }}\n                                </div>\n                                <div class=\"vx-fs-11 vx-paragraph-txt\"\n                                  [ngClass]=\"responsibility?.ReportRiskClass?.toLowerCase()\">\n                                  {{ responsibility?.ReportRiskClass }}\n                                </div>\n                              </div>\n                            </div>\n\n                            <div *ngIf=\"responsibility?.CustomTag?.length\" class=\"qv-overview-details-item vx-pt-2\">\n                              <div *ngIf=\"!responsibility?.CustomTag?.length\" class=\"vx-d-flex vx-align-center\">\n                                <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-2\">\n                                  Custom Tag:\n                                </div>\n                                <div class=\"details vx-fs-12 vx-paragraph-txt\">--</div>\n                              </div>\n                              <ng-container *ngIf=\"responsibility?.CustomTag?.length\">\n                                <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-2\">\n                                  Custom Tag:\n                                </div>\n                                <div class=\"custom-tag-list vx-d-flex vx-align-center\"\n                                  *ngFor=\"let CustomTag of responsibility?.CustomTag; let i = index\">\n                                  <div\n                                    class=\"custom-tag-list-left vx-fs-12 vx-paragraph-txt vx-d-flex vx-align-center vx-pt-2 vx-pb-2 vx-pr-2\"\n                                    [attr.id]=\"CustomTag.tag_name.toLowerCase()\">\n                                    {{ CustomTag.tag_name }}\n                                  </div>\n                                  <div\n                                    class=\"custom-tag-list-right vx-fs-12 vx-paragraph-txt vx-d-flex vx-align-center vx-pt-2 vx-pb-2 vx-pl-2\"\n                                    [attr.id]=\"CustomTag.tag_name.toLowerCase() + '-details'\">\n                                    {{ CustomTag.value }}\n                                  </div>\n                                </div>\n                              </ng-container>\n                            </div>\n      </ng-container>\n\n      <button (click)=\"showSection()\"\n        class=\"view-more-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-mt-3\">\n        <ng-container *ngIf=\"!hideSection\">View More</ng-container>\n        <ng-container *ngIf=\"hideSection\">Show Less</ng-container>\n      </button>\n    </div>","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'quickview-loader',\n    templateUrl: './quickview-loader.component.html',\n    styleUrls: ['./quickview-loader.component.less'],\n    standalone: false\n})\nexport class QuickviewLoaderComponent {\n\n  constructor() { }\n\n}\n","<div class=\"qv-quick-view-loader\">\n    <div class=\"loader button\"></div>\n    <div class=\"qv-quick-view-loader-heading vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-mb-3\">\n        <div class=\"vx-d-flex vx-align-center vx-w-100\">\n            <div class=\"vx-avatar-group qv-avatar vx-mr-2 loader\"></div>\n            <div class=\"risk-name loader\"></div>\n        </div>\n    </div>\n    <div class=\"qv-quick-view-loader-body vx-pl-4\">\n        <div class=\"vx-d-flex vx-align-center vx-mb-2\">\n            <div class=\"tab-btn vx-d-flex vx-align-center vx-pt-2 vx-pb-2\" *ngFor=\"let data of [1, 1, 1]\">\n            <div class=\"loader\"></div>\n            </div>\n        </div>\n\n        <div class=\"overview-area vx-pr-4\">\n          <details-loader></details-loader>\n            <div class=\"overview-details vx-mb-4\">\n                <div class=\"loader heading vx-mt-1 vx-mb-2\"></div>\n                <div class=\"loader notes vx-mb-1\" *ngFor=\"let data of [1, 1, 1, 1]\"></div>\n            </div>\n\n            <div class=\"overview-details-list\">\n                <ul class=\"vx-p-0 vx-m-0\">\n                    <li class=\"vx-d-flex vx-align-center\" *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\"><div class=\"loader\"></div></li>\n                </ul>\n            </div>\n        </div>\n    </div>\n</div>\n","import { Component } from '@angular/core';\nimport { ASSETS } from '../../shared/constants/assets.constants';\n\n@Component({\n    selector: 'mark-as-complete',\n    templateUrl: './mark-as-complete.component.html',\n    styleUrls: ['./mark-as-complete.component.less'],\n    standalone: false\n})\nexport class MarkAsCompleteComponent {\n  ASSETS: any = ASSETS;\n\n  constructor() {}\n\n  reason: any = {\n    mode: 'prime',\n    placeholder: 'Type here',\n  };\n}\n","<div class=\"qv-mark-as-complete\">\n  <div class=\"qv-mark-as-complete-item vx-mb-4\">\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n      REASON:\n    </div>\n    <vcomply-editor [editorConfig]=\"reason\"></vcomply-editor>\n  </div>\n  <div class=\"qv-mark-as-complete-item vx-mb-1\">\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n      ADD ATTACHMENTS/EVIDENCE :\n    </div>\n    <!-- Dropdown Uploader and Browse Button -->\n    <div class=\"files-folders\">\n      <ng-container *ngIf=\"true\">\n        <div\n          class=\"file-upload vx-p-4 vx-pl-3 vx-pr-5 vx-d-flex vx-align-center vx-justify-center\"\n        >\n          <img [src]=\"ASSETS.upload\" alt=\"\" />\n          <div\n            class=\"vx-fs-12 vx-paragraph-txt vx-ml-3 vx-d-flex vx-align-center\"\n          >\n            Drop your files here /\n            <div\n              class=\"browse vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-ml-1\"\n            >\n              <input type=\"file\" />\n              BROWSE\n            </div>\n          </div>\n          <div *ngIf=\"false\" class=\"drag-hover\" [class.active]=\"false\">\n            <input type=\"file\" />\n          </div>\n        </div>\n      </ng-container>\n      <!-- File Preview Container -->\n      <ng-container *ngIf=\"false\">\n        <div class=\"upload-area vx-p-4 vx-pt-2\">\n          <div class=\"vx-d-flex vx-align-center vx-justify-between vx-mb-2\">\n            <div class=\"heading vx-fs-12 vx-fw-500 vx-label-txt\">\n              Upload Files\n            </div>\n          </div>\n          <div class=\"upload-item-area\">\n            <div\n              class=\"upload-item vx-d-flex vx-align-center vx-justify-between vx-mb-1\"\n              *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\"\n            >\n              <div class=\"vx-d-flex vx-align-center\">\n                <span class=\"file table pdf\">\n                  <i class=\"icons\">&#xe92e;</i>\n                  <div class=\"format\">pdf</div>\n                </span>\n                <div\n                  class=\"file-name vx-fs-12 vx-label-txt vx-d-flex vx-align-center\"\n                >\n                  <span\n                    [appTooltip]=\"'file-name.pdf'\"\n                    placement=\"bottom-left\"\n                    delay=\"0\"\n                    type=\"black\"\n                    [tooltipMandatory]=\"false\"\n                    >file-name.pdf</span\n                  >\n                </div>\n              </div>\n              <!-- Unselect button in preview (x) -->\n              <button\n                class=\"delete-btn vx-fs-12 vx-txt-red vx-p-0 vx-m-0 vx-mr-1 vx-d-flex vx-align-center\"\n              >\n                <i class=\"icons\">&#xe9ae;</i>\n              </button>\n              <!-- Uploading Bar in preview -->\n              <ng-container *ngIf=\"true\">\n                <div class=\"uploading vx-fs-9 vx-paragraph-txt\">\n                  Uploading...\n                </div>\n                <div class=\"progress-bar\">\n                  <div class=\"progress-bar-move\"></div>\n                </div>\n              </ng-container>\n            </div>\n          </div>\n          <!-- Upload Container when File Preview is Open-->\n          <div\n            class=\"after-upload vx-fs-11 vx-paragraph-txt vx-d-flex vx-align-center vx-justify-center vx-pt-3 vx-pb-2 vx-mt-1\"\n          >\n            <input type=\"file\" />\n            Do you want insert more files?\n            <span class=\"vx-tt-uppercase vx-pl-1 vx-pr-1\">Drop Files Here</span>\n            /\n            <span class=\"vx-fw-500 vx-txt-blue vx-tt-uppercase vx-pl-1\"\n              >Browse</span\n            >\n          </div>\n          <div class=\"vx-d-flex vx-align-center\">\n            <button\n              class=\"cancel-btn vx-fs-11 vx-fw-500 vx-txt-red vx-tt-uppercase vx-p-0 vx-m-0 vx-mt-2 vx-d-flex vx-align-center vx-justify-center vx-w-100 vx-lh-6\"\n              [class.disabled]=\"false\"\n            >\n              CANCEL\n            </button>\n            <button\n              class=\"upload-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-mt-2 vx-ml-1 vx-d-flex vx-align-center vx-justify-center vx-w-100 vx-lh-6\"\n              [class.disabled]=\"false\"\n            >\n              UPLOAD\n            </button>\n          </div>\n        </div>\n      </ng-container>\n    </div>\n  </div>\n</div>\n<div class=\"qv-mark-as-complete-btn vx-d-flex vx-align-center vx-mt-2\">\n  <button\n    class=\"cancel-btn vx-fs-14 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"\n  >\n    CANCEL\n  </button>\n  <button\n    class=\"submit-btn vx-fs-14 vx-fw-600 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"\n  >\n    SUBMIT\n  </button>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'AssigneeTooltip',\n    standalone: false\n})\nexport class AssigneeTooltipPipe implements PipeTransform {\n  transform(entrustedMembers: any): string {\n    const tooltipMessage = 'Entrusted to: ';\n    if (entrustedMembers.length === 1) {\n      return tooltipMessage + entrustedMembers[0]?.member_name;\n    }\n    if (entrustedMembers.length > 1) {\n      return tooltipMessage + 'Multiple Users';\n    }\n    return '';\n  }\n}\n","import {\n  Component,\n  EventEmitter,\n  HostListener,\n  OnInit,\n  OnDestroy,\n} from '@angular/core';\nimport { AddPastEventComponent } from '../../ui-elements/action-dialog/add-past-event/add-past-event.component';\nimport { DialogBoxComponent } from '../../ui-elements/action-dialog/dialog/dialog.component';\nimport { EditDueDateComponent } from '../../ui-elements/action-dialog/edit-due-date/edit-due-date.component';\nimport { PauseComponent } from '../../ui-elements/action-dialog/pause/pause.component';\nimport { TransferHandoverComponent } from '../../ui-elements/action-dialog/transfer-handover/transfer-handover.component';\nimport { DialogDataService } from '../../ui-elements/ui-dialog/ui-dialog.service';\nimport { DialogActionFormComponent } from '../../ui-elements/dialog-form/dialog-form.component';\nimport { AddNewDueDateDialogComponent } from './add-new-due-date-dialog.component';\nimport { AddPastEventDialogComponent } from './add-past-event-dialog.component';\nimport { CommonApiService } from '../../shared/services/common-api.service';\nimport { Subject, filter, takeUntil, map, catchError, EMPTY, finalize } from 'rxjs';\nimport { ContainerService } from './quickview-loader/services/container.service';\nimport { AuthorizerService } from '@vcomply/authorizer';\nimport { ApiService } from '../../shared/services/api.service';\nimport { ConfirmQuickComponent } from '../../shared/components/dialog/confirm/confirm.component';\nimport { HandoverTransferComponent } from '../../shared/components/dialog/handover-transfer/handover-transfer.component';\nimport moment from 'moment/moment';\nimport { QuickViewService } from '../../shared/services/quick-view.service';\nimport { SnackBarService } from '../../ui-elements/snack-bar/snack-bar.service';\nimport { PlatformLocation } from '@angular/common';\n// import { AuthService } from 'vcomply-workflow-engine/lib/workflow-services/auth.service';\nimport { WorkflowService } from '../../workflow/workflow.service';\nimport { CommonService } from '../../shared/services/common.service';\nimport { DeleteParentRespQuickComponent } from '../../shared/components/dialog/delete-parent-resp/delete-parent-resp.component';\nimport { TabModal } from '../../shared/interfaces/overview-modal';\nimport { BusinessCycleService } from '../../shared/services/business.service';\nimport {\n  APP_URL,\n  MODE,\n  WORKFLOW_TYPE,\n} from '../../shared/constants/app-url.constants';\nimport { ASSETS } from '../../shared/constants/assets.constants';\n\n@Component({\n    selector: 'quick-view',\n    templateUrl: './quick-view.component.html',\n    styleUrls: ['./quick-view.component.less'],\n    inputs: ['id', 'organizationDetails', 'features'],\n    outputs: ['close', 'refresh'],\n    standalone: false\n})\nexport class QuickViewComponent implements OnInit, OnDestroy {\n  ASSETS: any = ASSETS;\n  currentTab = 'OVERVIEW';\n  markAsComplete = false;\n  responsibility: any;\n  availableActionList: Array<any> = [];\n  data: any;\n  showFormPopUp: boolean = false;\n  isTextEditor: boolean = false;\n  isList: boolean = false;\n  isUpload: boolean = false;\n  id: string = '';\n  organizationDetails: any;\n  baseUrl: any;\n  workroomUrl: string = '';\n  features: any;\n  skeletonLoader: boolean = true;\n  reviewerDueDateList: Array<any> = [];\n  unsubscribe: Subject<any> = new Subject();\n  close: EventEmitter<any> = new EventEmitter();\n  refresh: EventEmitter<boolean> = new EventEmitter();\n  loader: boolean = false;\n  userDetails: any[] = [];\n  qvTabs: Array<TabModal> = [];\n  notificationCount: any;\n  isLoadingActions: boolean = false;\n  hasLoadedActions: boolean = false;\n  private userInfoLoadedFor = '';\n  private isLoadingUserInfo = false;\n\n  constructor(\n    private dialogOpen: DialogDataService,\n    public commonApi: CommonApiService,\n    public containerService: ContainerService,\n    private authorizer: AuthorizerService,\n    private snackBarService: SnackBarService,\n    private apiService: ApiService,\n    private quickViewService: QuickViewService,\n    private platformLocation: PlatformLocation,\n    private workflowService: WorkflowService,\n    private commonService: CommonService,\n    private businessCycleService: BusinessCycleService\n  ) {\n    this.baseUrl = (platformLocation as any)?.location?.origin;\n    this.getResponsibilityDetails();\n    this.getReviewerDueDateList();\n    this.onRefresh();\n  }\n  ngOnDestroy(): void {\n    this.unsubscribe.next(null);\n    this.unsubscribe.complete();\n  }\n\n  ngOnInit(): void {\n    this.getUserInfo();\n  }\n\n  getTabVisibility() {\n    if (this.responsibility?.notification_pending === 1) {\n      this.qvTabs = [\n        {\n          id: 'OVERVIEW',\n          name: 'overview',\n        },\n      ];\n    } else {\n      this.qvTabs = this.containerService.TAB_LIST;\n    }\n  }\n\n  getUserInfo() {\n    const userId = String(this.authorizer.getUserId());\n\n    if (\n      this.userInfoLoadedFor === userId &&\n      Array.isArray(this.userDetails) &&\n      this.userDetails.length\n    ) {\n      return;\n    }\n\n    if (this.isLoadingUserInfo) {\n      return;\n    }\n\n    this.isLoadingUserInfo = true;\n    let api = `organization/?mode=users&id=${userId}`;\n    this.apiService\n      .get(api)\n      .pipe(\n        finalize(() => {\n          this.isLoadingUserInfo = false;\n        })\n      )\n      .subscribe({\n        next: (res: any) => {\n          this.userDetails = res;\n          this.userInfoLoadedFor = userId;\n        },\n        error: () => {},\n      });\n  }\n\n  onRefresh() {\n    this.commonService.refreshResponsibility$\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe({\n        next: (res: any) => {\n          this.loader = true;\n        },\n      });\n  }\n\n  delete() {\n    const payload = {\n      report_id: [this.responsibility.EncryptedReportId],\n      action: '',\n    };\n    this.apiService\n      .post(\n        'compliance_post/?mode=complianceReport/multipleReportDelete',\n        payload\n      )\n      .subscribe({\n        next: (res: any) => {\n          if (res.reports[this.id]) {\n            this.openDependentResponsibility(res.reports[this.id]);\n          } else {\n            this.snackBarService.show(\n              'The responsibility has been deleted successfully.',\n              'success'\n            );\n            this.commonService.refreshResponsibility$.next(this.id);\n            setTimeout(() => {\n              this.onClose();\n            }, 1000);\n          }\n        },\n        error: () => {\n          this.quickViewService.showErrorSnackbar();\n        },\n      });\n  }\n\n  openDependentResponsibility(responsibility: any) {\n    this.dialogOpen\n      .open(DeleteParentRespQuickComponent, {\n        data: {\n          dependentResponsibility: responsibility,\n          responsibility: this.responsibility,\n        },\n        position: 'CENTER',\n        background: 'black',\n      })\n      .afterClosed.subscribe((res: any) => {\n        if (res) {\n          const payload = {\n            report_id: responsibility\n              .map((ele: any) => ele.EncryptedReportId)\n              .concat(this.id),\n            action: 'confirm',\n          };\n          const api =\n            'compliance_post/?mode=complianceReport/multipleReportDelete&bypass-businessCycle=true';\n          const msg =\n            'The responsibility has been deleted successfully. You can find this in the trash.';\n          this.apiCallPost(api, msg, payload, 'success', 'delete');\n        }\n      });\n  }\n\n  transfer() {\n    this.dialogOpen.open(TransferHandoverComponent, {\n      data: {},\n      position: 'CENTER',\n      background: 'black',\n    });\n  }\n\n  openWorkflow() {\n    this.workflowService\n      .openWorkflow('EDIT', 'CAR', '', this.id, this.features)\n      .subscribe((res) => {\n        if (res) {\n          this.commonService.refreshResponsibility$.next(this.id);\n        }\n      });\n  }\n\n  pause() {\n    this.dialogOpen.open(PauseComponent, {\n      data: {},\n      position: 'CENTER',\n      background: 'black',\n    });\n  }\n\n  editDueDate() {\n    this.dialogOpen.open(EditDueDateComponent, {\n      data: {},\n      position: 'CENTER',\n      background: 'black',\n    });\n  }\n\n  addPastEvent() {\n    this.dialogOpen.open(AddPastEventComponent, {\n      data: {},\n      position: 'CENTER',\n      background: 'black',\n    });\n  }\n\n  switchTab(tab: string) {\n    this.currentTab = tab;\n    if (\n      ['REVIEW', 'COMPLETION'].includes(tab) &&\n      this.responsibility?.reviewer_flag === 1 &&\n      this.commonApi.reviewerDueDateList$.value.length === 0\n    ) {\n      this.commonApi.getReviewerList(this.responsibility.EncryptedReportId);\n    }\n  }\n\n  onClose(data?: any) {\n    this.close.emit(data);\n  }\n\n  @HostListener('window:keyup', ['$event']) handleKeyboardEvent(\n    event: KeyboardEvent\n  ) {\n    if (event.key === 'Escape') {\n      this.onClose();\n    }\n  }\n\n  getResponsibilityDetails() {\n    this.commonApi.responsibilityDetails$\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe({\n        next: (res: any) => {\n          if (res && Object.keys(res)?.length) {\n            this.loader = false;\n            this.responsibility = res ?? {};\n            this.getTabVisibility();\n            this.goToWorkroom(res?.EncryptedReportId);\n            this.availableActions();\n            if (\n              res?.ReviewersDetails?.level1?.reviewers?.length &&\n              this.qvTabs.findIndex((ele: any) => ele.id === 'REVIEW') === -1 &&\n              this.responsibility?.notification_pending !== 1\n            ) {\n              this.qvTabs.splice(1, 0, {\n                id: 'REVIEW',\n                name: 'Review',\n              });\n            }\n          }\n        },\n        error: (err: Error) => {\n          this.commonService.showErrorSnackbar();\n        },\n      });\n  }\n\n  //The function is responsible for the listing and actions method of actions on three dots.\n  availableActions() {\n    this.availableActionList = [];\n    this.addNewDueDateAction();\n    this.acceptAction();\n    this.declineAction();\n    this.moreDetailsAction();\n    this.startAction();\n    this.ResumeProgressAction();\n    this.needMoreTimeAction();\n    this.cannotCompleteAction();\n    this.redoAction();\n    this.rejectAction();\n    this.needMoreTimeAcceptAction();\n    this.needMoreTimeDeclineAction();\n    this.cannotComplyAcceptAction();\n    this.cannotComplyDeclineAction();\n    this.acceptNewDueDateAction();\n    this.activateAction();\n    this.deactivateAction();\n    this.editAction();\n    this.notifyAction();\n    this.duplicateAction();\n    this.transferAction();\n    this.handoverAction();\n    this.handoverToAction();\n    this.delegateAction();\n    this.delegatedToAction();\n    this.deleteAction();\n    this.addPastEventAction();\n    this.logAnIssueAction();\n    this.pauseAction();\n    this.editDueDateAction();\n    this.sendReminderAction();\n    this.entrustAction();\n  }\n\n  //Actions Start\n  addNewDueDateAction() {\n    if (this.responsibility?.AddNewDueDate_enable) {\n      this.availableActionList.push({\n        actionName: 'Add New Due Date',\n        actionIcon: '&#xe92d;',\n        callFunction: () => {\n          this.addNewDueDates();\n        },\n      });\n    }\n  }\n\n  acceptAction() {\n    if (this.responsibility.Accept_Enable) {\n      this.availableActionList.push({\n        actionName: 'Accept',\n        actionIcon: '&#xe9d3;',\n        callFunction: () => {\n          this.redirectToSingleAction(\n            'ACCEPT',\n            this.responsibility.DuedateObjectId\n          );\n        },\n      });\n    }\n  }\n\n  declineAction() {\n    if (this.responsibility.Decline_Enable) {\n      this.availableActionList.push({\n        actionName: 'Decline',\n        actionIcon: '&#xe9d0;',\n        callFunction: () => {\n          this.redirectToSingleAction(\n            'DECLINE',\n            this.responsibility.DuedateObjectId\n          );\n        },\n      });\n    }\n  }\n\n  moreDetailsAction() {\n    if (this.responsibility.MoreDetails_Enable) {\n      this.availableActionList.push({\n        actionName: 'Request More Details',\n        actionIcon: '&#xe980;',\n        callFunction: () => {\n          this.redirectToSingleAction(\n            'REQUEST_DETAILS',\n            this.responsibility.DuedateObjectId\n          );\n        },\n      });\n    }\n  }\n\n  startAction() {\n    if (this.responsibility.Done_Enable) {\n      this.availableActionList.push({\n        actionName: 'Start',\n        actionIcon: '&#xeac5;',\n        callFunction: () => {\n          this.redirectToSingleAction(\n            'DONE',\n            this.responsibility.DuedateObjectId\n          );\n        },\n      });\n    }\n  }\n\n  ResumeProgressAction() {\n    if (this.responsibility?.ResumeProgressEnable) {\n      this.availableActionList.push({\n        actionName: 'Resume Progress',\n        actionIcon: '&#xeac5;',\n        callFunction: () => {\n          this.redirectToSingleAction(\n            'DONE',\n            this.responsibility.DuedateObjectId\n          );\n        },\n      });\n    }\n  }\n\n  needMoreTimeAction() {\n    if (this.responsibility.NeedMoreTime_Enable) {\n      this.availableActionList.push({\n        actionName: 'Need More Time',\n        actionIcon: '&#xea96;',\n        callFunction: () => {\n          this.redirectToSingleAction(\n            'NEED_MORE_TIME',\n            this.responsibility.DuedateObjectId\n          );\n        },\n      });\n    }\n  }\n\n  cannotCompleteAction() {\n    if (this.responsibility.CannotComply_Enable) {\n      this.availableActionList.push({\n        actionName: 'Cannot Complete',\n        actionIcon: '&#xeaae;',\n        callFunction: () => {\n          this.redirectToSingleAction(\n            'CANNOT_COMPLETE',\n            this.responsibility.DuedateObjectId\n          );\n        },\n      });\n    }\n  }\n\n  redoAction() {\n    if (this.responsibility.Redo_Enable) {\n      this.availableActionList.push({\n        actionName: 'Redo',\n        actionIcon: '&#xea51;',\n        callFunction: () => {\n          this.redirectToSingleAction(\n            'REDO',\n            this.responsibility.DuedateObjectId\n          );\n        },\n      });\n    }\n  }\n\n  rejectAction() {\n    if (this.responsibility.Reject_Enable) {\n      this.availableActionList.push({\n        actionName: 'Reject',\n        actionIcon: '&#xe90d;',\n        callFunction: () => {\n          this.redirectToSingleAction(\n            'REJECT',\n            this.responsibility.DuedateObjectId\n          );\n        },\n      });\n    }\n  }\n\n  condoneAction() {\n    if (this.responsibility.Condone_Enable) {\n      this.availableActionList.push({\n        actionName: 'Condone',\n        actionIcon: '&#xea84;',\n        callFunction: () => {\n          this.redirectToSingleAction(\n            'CONDONE',\n            this.responsibility.DuedateObjectId\n          );\n        },\n      });\n    }\n  }\n\n  insistAction() {\n    if (this.responsibility.Insist_Enable) {\n      this.availableActionList.push({\n        actionName: 'Insist',\n        actionIcon: '&#xeb31;',\n        callFunction: () => {\n          this.redirectToSingleAction(\n            'INSIST',\n            this.responsibility.DuedateObjectId\n          );\n        },\n      });\n    }\n  }\n\n  needMoreTimeAcceptAction() {\n    if (this.responsibility.NeedMoreTimeAccept_Enable) {\n      this.availableActionList.push({\n        actionName: 'Accept',\n        actionIcon: '&#xe9d3;',\n        callFunction: () => {\n          this.redirectToSingleAction(\n            'NEED_MORE_TIME_ACCEPT',\n            this.responsibility.DuedateObjectId\n          );\n        },\n      });\n    }\n  }\n\n  needMoreTimeDeclineAction() {\n    if (this.responsibility.NeedMoreTimeDecline_Enable) {\n      this.availableActionList.push({\n        actionName: 'Decline',\n        actionIcon: '&#xe9d0;',\n        callFunction: () => {\n          this.redirectToSingleAction(\n            'NEED_MORE_TIME_DECLINE',\n            this.responsibility.DuedateObjectId\n          );\n        },\n      });\n    }\n  }\n\n  cannotComplyAcceptAction() {\n    if (this.responsibility.CannotComplyAccept_Enable) {\n      this.availableActionList.push({\n        actionName: 'Accept',\n        actionIcon: '&#xe9d3;',\n        callFunction: () => {\n          this.redirectToSingleAction(\n            'CANNOT_COMPLY_ACCEPT',\n            this.responsibility.DuedateObjectId\n          );\n        },\n      });\n    }\n  }\n\n  cannotComplyDeclineAction() {\n    if (this.responsibility.CannotComplyDecline_Enable) {\n      this.availableActionList.push({\n        actionName: 'Decline',\n        actionIcon: '&#xe9d0;',\n        callFunction: () => {\n          this.redirectToSingleAction(\n            'CANNOT_COMPLY_DECLINE',\n            this.responsibility.DuedateObjectId\n          );\n        },\n      });\n    }\n  }\n\n  acceptNewDueDateAction() {\n    if (this.responsibility.CannotComplyDuedate_Enable) {\n      this.availableActionList.push({\n        actionName: 'Accept with new due date',\n        actionIcon: '&#xe9c7;',\n        callFunction: () => {\n          this.redirectToSingleAction(\n            'CANNOT_COMPLY_NEW_DATE',\n            this.responsibility.DuedateObjectId\n          );\n        },\n      });\n    }\n  }\n\n  activateAction() {\n    if (this.responsibility.activate_enable) {\n      this.availableActionList.push({\n        actionName: 'Activate',\n        actionIcon: '&#xe93d;',\n        callFunction: () => {\n          this.confirm('ACTIVATE', this.responsibility.EncryptedReportId);\n        },\n      });\n    }\n  }\n\n  deactivateAction() {\n    if (this.responsibility.deactivate_enable) {\n      this.availableActionList.push({\n        actionName: 'Deactivate',\n        actionIcon: '&#xe9d0;',\n        callFunction: () => {\n          this.confirm('DEACTIVATE', this.responsibility.EncryptedReportId);\n        },\n      });\n    }\n  }\n\n  editAction() {\n    if (this.responsibility.edit_enable) {\n      this.availableActionList.push({\n        actionName: 'Edit',\n        actionIcon: '&#xe9ba;',\n        callFunction: this.openWorkflow.bind(this),\n      });\n    }\n  }\n\n  notifyAction() {\n    if (this.responsibility?.can_be_notify) {\n      this.availableActionList.push({\n        actionName: 'Notify',\n        actionIcon: '&#xe909;',\n        callFunction: () => {\n          this.notifyReport(this.responsibility?.EncryptedReportId);\n        },\n      });\n    }\n  }\n\n  duplicateAction() {\n    if (this.responsibility.duplicate_enable) {\n      this.availableActionList.push({\n        actionName: 'Duplicate',\n        actionIcon: '&#xe9b6;',\n        callFunction: () => {\n          this.confirm('DUPLICATE', this.responsibility.EncryptedReportId);\n        },\n      });\n    }\n  }\n\n  transferAction() {\n    if (this.responsibility.transfer_enable) {\n      const msg =\n        'This action will <strong>Transfer</strong> this responsibility.';\n      this.availableActionList.push({\n        actionName: 'Transfer',\n        actionIcon: '&#xe9e5;',\n        callFunction: () => {\n          this.handoverTransfer(msg, 'TRANSFER', '&#xe9e5;');\n        },\n      });\n    }\n  }\n\n  handoverAction() {\n    if (this.responsibility.handover_enable) {\n      const msg =\n        'This action will <strong>Handover</strong> this responsibility.';\n      this.availableActionList.push({\n        actionName: 'Handover',\n        actionIcon: '&#xea7c;',\n        callFunction: () => {\n          this.handoverTransfer(msg, 'HANDOVER', '&#xea7c;');\n        },\n      });\n    }\n  }\n\n  handoverToAction() {\n    if (this.responsibility.Handover_Terminate_Enable) {\n      this.availableActionList.push({\n        actionName: 'Handed Over to',\n        actionIcon: '&#xea7c;',\n        id: 'handoverRevoke',\n        tooltip:\n          'Handed Over to ' +\n          this.responsibility?.handover_data_arr[0]?.handover_member_name +\n          ' - Click here to revoke',\n        profile_pic: this.responsibility?.handover_data_arr[0]?.profile_pic,\n        shortName: this.responsibility.handover_data_arr[0]?.shortName,\n        callFunction: () => {\n          this.handoverRevoke();\n        },\n      });\n    }\n  }\n\n  delegateAction() {\n    if (\n      this.responsibility.Delegate_Enable &&\n      !this.responsibility.read_only_flag\n    ) {\n      const msg =\n        'This action will <strong>Delegate</strong> this responsibility.';\n      this.availableActionList.push({\n        actionName: 'Delegate',\n        actionIcon: '&#xeb13;',\n        callFunction: () => {\n          this.handoverTransfer(msg, 'DELEGATE', '&#xea7a;');\n        },\n      });\n    }\n  }\n\n  delegatedToAction() {\n    if (\n      this.responsibility.Terminate_Enable &&\n      this.responsibility.ReportDelegation &&\n      this.responsibility.ReportDelegation.length > 0\n    ) {\n      this.availableActionList.push({\n        actionName: 'Delegated to',\n        actionIcon: '&#xeb13;',\n        id: 'handoverRevoke',\n        tooltip:\n          'Delegated to ' +\n          this.responsibility?.ReportDelegation[0]?.member_name +\n          ' - Click here to revoke',\n        profile_pic: '',\n        shortName: this.quickViewService.shortName(\n          this.responsibility?.ReportDelegation[0]?.member_name\n        ),\n        callFunction: () => {\n          this.revokeDelegation(this.responsibility);\n        },\n      });\n    }\n  }\n\n  deleteAction() {\n    if (this.responsibility.delete_enable) {\n      this.availableActionList.push({\n        actionName: 'Delete',\n        actionIcon: '&#xe923;',\n        callFunction: () => {\n          this.confirm('DELETE', this.responsibility.EncryptedReportId);\n        },\n      });\n    }\n  }\n\n  addPastEventAction() {\n    if (this.responsibility.PastEvent_Enable) {\n      this.availableActionList.push({\n        actionName: 'Add a Past Event',\n        actionIcon: '&#xe92d;',\n        callFunction: () => {\n          this.openDialogPastEvent();\n        },\n      });\n    }\n  }\n\n  logAnIssueAction() {\n    if (this.responsibility.LogIssue_Enable) {\n      this.availableActionList.push({\n        actionName: 'Log an Issue',\n        actionIcon: '&#xe9b4;',\n        callFunction: () => {\n          this.workflowEngineAction(\n            'LOG_AN_ISSUE',\n            this.responsibility.EncryptedReportId\n          );\n        },\n      });\n    }\n  }\n\n  pauseAction() {\n    if (this.responsibility.Pause_Enable) {\n      this.availableActionList.push({\n        actionName: 'Pause',\n        actionIcon: '&#xea32;',\n        callFunction: () => {\n          this.pauseDueDates();\n        },\n      });\n    }\n  }\n\n  editDueDateAction() {\n    if (this.responsibility.EditDuedate_Enable) {\n      this.availableActionList.push({\n        actionName: 'Edit a Due Date',\n        actionIcon: '&#xe90c;',\n        callFunction: () => {\n          this.editDueDates();\n        },\n      });\n    }\n  }\n\n  sendReminderAction() {\n    if (this.responsibility.Send_Reminder_Enable) {\n      this.availableActionList.push({\n        actionName: 'Send Reminder',\n        actionIcon: '&#xe909;',\n        callFunction: () => {\n          this.sendReminderEmail();\n        },\n      });\n    }\n  }\n\n  sendReminderEmail() {\n    const api =\n      'compliance/?mode=complianceReport/SendreminderByReport&reportId=' +\n      this.id +\n      '&bypass-businessCycle=true';\n    const msg =\n      'The reminder for this responsibility has been sent successfully.';\n    this.apiService.get(api).subscribe({\n      next: () => {\n        this.snackBarService.show(msg, 'success');\n      },\n      error: () => {\n        this.commonService.showErrorSnackbar();\n      },\n    });\n  }\n\n  entrustAction() {\n    if (this.responsibility.Entrust_Enable) {\n      this.availableActionList.push({\n        actionName: 'Entrust',\n        actionIcon: '&#xe91c;',\n        callFunction: () => {\n          this.workflowEngineAction(\n            'ENTRUST',\n            this.responsibility.EncryptedReportId\n          );\n        },\n      });\n    }\n  }\n  //Actions end\n\n  redirectToSingleAction(\n    type:\n      | 'ACCEPT'\n      | 'DECLINE'\n      | 'REQUEST_DETAILS'\n      | 'DONE'\n      | 'NEED_MORE_TIME'\n      | 'CANNOT_COMPLETE'\n      | 'REDO'\n      | 'REJECT'\n      | 'CONDONE'\n      | 'INSIST'\n      | 'NEED_MORE_TIME_ACCEPT'\n      | 'NEED_MORE_TIME_DECLINE'\n      | 'CANNOT_COMPLY_ACCEPT'\n      | 'CANNOT_COMPLY_DECLINE'\n      | 'CANNOT_COMPLY_NEW_DATE',\n    dueDateId: string\n  ) {\n    const config = {\n      ACCEPT: 'accept',\n      DECLINE: 'decline',\n      REQUEST_DETAILS: 'request_more_details',\n      DONE: 'done',\n      NEED_MORE_TIME: 'need_more_time',\n      CANNOT_COMPLETE: 'can_not_do',\n      REDO: 'redo',\n      REJECT: 'reject',\n      CONDONE: 'condone',\n      INSIST: 'insist',\n      NEED_MORE_TIME_ACCEPT: 'need_more_time_accept',\n      NEED_MORE_TIME_DECLINE: 'need_more_time_decline',\n      CANNOT_COMPLY_ACCEPT: 'can_not_do_accept',\n      CANNOT_COMPLY_DECLINE: 'can_not_do_decline',\n      CANNOT_COMPLY_NEW_DATE: 'can_not_do_accept_withdate',\n    };\n    window.location.href =\n      'https://' +\n      window.location.host +\n      '/action/compliance?mode=' +\n      config[type] +\n      '&reportId=' +\n      this.responsibility.EncryptedReportId +\n      '&uId=' +\n      this.authorizer.getMemberId() +\n      (dueDateId ? '&duedateId=' + dueDateId : '');\n  }\n\n  confirm(\n    type:\n      | 'DELETE'\n      | 'ACTIVATE'\n      | 'DEACTIVATE'\n      | 'DUPLICATE'\n      | 'REMOVE_KEY_RESPONSIBILITY'\n      | 'MAKE_KEY_RESPONSIBILITY',\n    dueDateId?: string\n  ) {\n    let configuration: any = {\n      DELETE: {\n        component: ConfirmQuickComponent,\n        message: 'This action will <b>delete</b> this responsibility.',\n        method: this.delete.bind(this),\n        icon: '&#xe923;',\n      },\n      DUPLICATE: {\n        component: ConfirmQuickComponent,\n        message: 'This action will <b>duplicate</b> this responsibility.',\n        method: this.duplicate.bind(this),\n        icon: '&#xe9b6;',\n      },\n      ACTIVATE: {\n        component: ConfirmQuickComponent,\n        message: 'This action will <b>activate</b> this responsibility.',\n        method: this.activate.bind(this),\n        icon: '&#xe93d;',\n      },\n      DEACTIVATE: {\n        component: ConfirmQuickComponent,\n        message: 'This action will <b>deactivate</b> this responsibility.',\n        method: this.deactivate.bind(this),\n        icon: '&#xe9d0;',\n      },\n      MAKE_KEY_RESPONSIBILITY: {\n        component: ConfirmQuickComponent,\n        message:\n          'Once confirmed, this responsibility will be designated as a <b>Key Responsibility</b>.',\n        method: this.makeKeyResponsibility.bind(this),\n        icon: '&#xea70;',\n      },\n      REMOVE_KEY_RESPONSIBILITY: {\n        component: ConfirmQuickComponent,\n        message:\n          'This action will remove this responsibility as a <b>Key Responsibility</b>.',\n        method: this.removeKeyResponsibility.bind(this),\n        icon: '&#xea71;',\n      },\n    };\n\n    const ref = this.dialogOpen.open(configuration[type]?.component, {\n      data: {\n        message: configuration[type]?.message,\n        icon: configuration[type]?.icon,\n        type,\n      },\n      position: 'CENTER',\n      background: 'black',\n    });\n\n    ref.afterClosed.subscribe({\n      next: (res: any) => {\n        if (res === true) {\n          configuration[type]?.method();\n        }\n      },\n    });\n  }\n\n  duplicate() {\n    const payload = {};\n    this.apiService\n      .put(\n        'compliance_put/?mode=duplicateReport&report_id=' +\n          this.responsibility.EncryptedReportId,\n        payload\n      )\n      .subscribe({\n        next: () => {\n          this.snackBarService.show(\n            'The responsibility has been duplicated successfully.',\n            'success'\n          );\n          this.commonService.refreshResponsibility$.next(this.id);\n        },\n        error: () => {\n          this.commonService.showErrorSnackbar();\n        },\n      });\n  }\n\n  notifyReport(reportIds: any[]) {\n    const payload = {\n      report_ids: [reportIds],\n    };\n    return this.apiService\n      .put('compliance_put/?mode=NotifyReportAssign', payload)\n      .subscribe({\n        next: () => {\n          this.refreshQueue();\n          this.snackBarService.show(\n            'The notification for this responsibility has been sent successfully.',\n            'success'\n          );\n          this.commonService.refreshResponsibility$.next(this.id);\n        },\n        error: () => {\n          this.commonService.showErrorSnackbar();\n        },\n      });\n  }\n\n  refreshQueue() {\n    this.commonService\n      .getNotificationCount()\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe((res) => {\n        this.getNotificationCount();\n      });\n  }\n\n  getNotificationCount() {\n    this.commonService?.notificationQueue.subscribe((data) => {\n      if (data.length != 0) this.notificationCount = data;\n    });\n  }\n\n  activate() {\n    const payload = {\n      report_id: [this.responsibility.EncryptedReportId],\n      report_active_flag: 1,\n    };\n    this.apiService\n      .post(\n        'compliance_post/?mode=complianceReport/multipleResponsibilitiesActivateDeactivate',\n        payload\n      )\n      .subscribe({\n        next: () => {\n          this.snackBarService.show(\n            'The responsibility has been activated successfully.',\n            'success'\n          );\n          this.commonService.refreshResponsibility$.next(this.id);\n        },\n        error: () => {\n          this.commonService.showErrorSnackbar();\n        },\n      });\n  }\n\n  deactivate() {\n    const payload = {\n      report_id: [this.responsibility.EncryptedReportId],\n      report_active_flag: 0,\n    };\n    this.apiService\n      .post(\n        'compliance_post/?mode=complianceReport/multipleResponsibilitiesActivateDeactivate',\n        payload\n      )\n      .subscribe({\n        next: () => {\n          this.snackBarService.show(\n            'The responsibility has been deactivated successfully.',\n            'success'\n          );\n          this.commonService.refreshResponsibility$.next(this.id);\n        },\n        error: () => {\n          this.commonService.showErrorSnackbar();\n        },\n      });\n  }\n\n  makeKeyResponsibility() {\n    const payload = {};\n    this.apiService\n      .put(\n        'compliance_put/?mode=keyCompliance&report_id=' +\n          this.responsibility.EncryptedReportId +\n          '&is_key_compliance=1',\n        payload\n      )\n      .subscribe({\n        next: () => {\n          this.snackBarService.show(\n            'This has been designated as a key responsibility.',\n            'success'\n          );\n          this.commonService.refreshResponsibility$.next(this.id);\n        },\n        error: () => {\n          this.commonService.showErrorSnackbar();\n        },\n      });\n  }\n\n  removeKeyResponsibility() {\n    const payload = {};\n    this.apiService\n      .put(\n        'compliance_put/?mode=keyCompliance&report_id=' +\n          this.responsibility.EncryptedReportId +\n          '&is_key_compliance=0',\n        payload\n      )\n      .subscribe({\n        next: () => {\n          this.snackBarService.show(\n            'This has been removed as a key responsibility.',\n            'success'\n          );\n          this.commonService.refreshResponsibility$.next(this.id);\n        },\n        error: () => {\n          this.commonService.showErrorSnackbar();\n        },\n      });\n  }\n\n  /**\n   * It sets the value of the showFormPopUp variable to true, and sets the values of the other variables\n   * to false.\n   */\n  //TODO Need to open dialog form\n  addNewDueDates() {\n    const data = {\n        title: 'Add new due date',\n        type: 'addNewDueDate',\n        action: 'addNewDueDate',\n        showDate: new Date(),\n        minDate: new Date(),\n        calenderPlaceHolder: 'Event Date',\n        reportDetails: this.responsibility,\n        showSaveButton: false,\n        showCancelButton: false,\n        showAddDate: true,\n      };\n\n    const dialogRef = this.dialogOpen.open(AddNewDueDateDialogComponent, {\n      data: { data },\n      position: 'CENTER',\n      background: 'black',\n    });\n\n    dialogRef.afterEvent.pipe(takeUntil(this.unsubscribe)).subscribe({\n      next: (event: any) => {\n        this.applyAction(event);\n      },\n    });\n  }\n\n  onActionMenuClick(action: any, moreAction: any, event?: MouseEvent) {\n    event?.stopPropagation();\n    action?.callFunction?.();\n    moreAction?.closePopover?.('top');\n  }\n\n  private openActionForm(\n    data: any,\n    options: {\n      isTextEditor: boolean;\n      isList: boolean;\n      isUpload: boolean;\n    }\n  ) {\n    const dialogRef = this.dialogOpen.open(DialogActionFormComponent, {\n      data: {\n        data,\n        isTextEditor: options.isTextEditor,\n        isList: options.isList,\n        isFileUpload: options.isUpload,\n      },\n      position: 'CENTER',\n      background: 'black',\n    });\n\n    dialogRef.afterEvent.pipe(takeUntil(this.unsubscribe)).subscribe({\n      next: (event: any) => {\n        this.applyAction(event);\n      },\n    });\n  }\n\n  getToday(timestamp: any) {\n    const currentDate = new Date().getTime();\n    const failedTimeStamp =\n      timestamp === 0 ? new Date().getTime() / 1000 : timestamp;\n    const delegateTimeStamp =\n      failedTimeStamp * 1000 > currentDate ? timestamp * 1000 : currentDate;\n\n    return delegateTimeStamp / 1000;\n  }\n\n  handoverTransfer(\n    message: string,\n    type: 'TRANSFER' | 'HANDOVER' | 'DELEGATE',\n    icon: '&#xe9e5;' | '&#xea7c;' | '&#xea7a;'\n  ) {\n    const ref = this.dialogOpen\n      .open(HandoverTransferComponent, {\n        data: {\n          responsibility: this.responsibility,\n          minDate: this.getToday(\n            this.responsibility.FailedDateTimestamp ?? Date.now()\n          ),\n          message,\n          icon,\n          type,\n          orgDetails: this.organizationDetails,\n        },\n        position: 'CENTER',\n        background: 'black',\n      })\n      .afterClosed.subscribe((res: any) => {\n        if (res) {\n          switch (type) {\n            case 'TRANSFER':\n              this.onTransfer(res);\n              break;\n            case 'HANDOVER':\n              this.onHandover(res);\n              break;\n            case 'DELEGATE':\n              this.onDelegate(res);\n              break;\n          }\n        }\n      });\n  }\n\n  /**\n   * It takes a user object, creates a payload object, creates a url string, creates a msg string, and\n   * then calls the apiCallPost function with the url, msg, payload, and 'info' as parameters.\n   * @param {any} user - any -&gt; this is the user object that is passed from the child component\n   */\n  onTransfer(user: any) {\n    const payload = {\n      report_id: [this.responsibility.ReportId],\n      assignee_to_id: user.employee_id,\n    };\n    const url =\n      'compliance_post/?mode=complianceReport/transferReport&bypass-businessCycle=true';\n    const msg =\n      'We are processing your request. You will get notified once it is done.';\n    this.apiCallPost(url, msg, payload, 'info');\n  }\n\n  /**\n   * It takes a user object, creates a payload object, makes an API call, and then displays a message.\n   * @param {any} user - any -&gt; this is the user object that is selected from the dropdown\n   */\n  onHandover(user: any) {\n    const payload = {\n      report_ids: [this.responsibility.ReportId],\n      handover_by: this.authorizer.getUserId(),\n      handover_to: user.member_id,\n    };\n    const url =\n      'compliance_post/?mode=complianceReport/reportHandover&bypass-businessCycle=true';\n    const msg =\n      'We have received your request. The new Assignor will be notified via email.';\n    this.apiCallPost(url, msg, payload, 'info');\n  }\n\n  //check  id: this._id,\n  onDelegate(res: any) {\n    const payload = {\n      action: 'DELEGATE_RESPONSIBILITY',\n      till_date: moment(res.until).format('DD MMM YYYY'),\n      data: [\n        {\n          id: this.id,\n          delegate_to: res.item_id,\n        },\n      ],\n    };\n    const url =\n      'compliance_post/?mode=delegateResponsibility&bypass-businessCycle=true';\n    const msg = 'The responsibility has been delegated successfully.';\n    this.apiCallPost(url, msg, payload, 'success');\n  }\n\n  /**\n   * It takes a url, a message, a payload, and a message class, and then it calls the apiService.post\n   * method, and then it shows a snackbar with the message and message class.\n   * @param {string} url - string - the url to call\n   * @param {string} msg - string - The message to display in the snackbar\n   * @param {any} payload - any = {}\n   * @param {'success' | 'info'} [msgClass=success] - 'success' | 'info' = 'success'\n   */\n  apiCallPost(\n    url: string,\n    msg: string,\n    payload: any = {},\n    msgClass: 'success' | 'info' = 'success',\n    type: string = 'normal'\n  ) {\n    this.apiService\n      .post(url, payload)\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe({\n        next: () => {\n          this.snackBarService.show(msg, msgClass);\n          if (type === 'delete') {\n            setTimeout(() => {\n              this.onClose();\n            }, 1000);\n          } else {\n            this.commonService.refreshResponsibility$.next(this.id);\n          }\n        },\n        error: () => {\n          this.commonService.showErrorSnackbar();\n        },\n      });\n  }\n\n  //TODO check function call\n  handoverRevoke() {\n    this.openActionForm(\n      {\n      title: `This action will revoke the responsibility handover request sent to ${this.responsibility?.handover_data_arr[0]?.handover_member_name}.`,\n      action: 'revokeHandover',\n      type: 'revokeHandover',\n      reportDetails: this.responsibility,\n      memberId: this.responsibility?.handover_data_arr[0]?.handover_member_id,\n      showSaveButton: false,\n      showCancelButton: true,\n      showRevokeButton: true,\n      },\n      {\n        isTextEditor: true,\n        isList: false,\n        isUpload: false,\n      }\n    );\n  }\n\n  revokeDelegation(reportDetail: any) {\n    const user = reportDetail.ReportDelegation[0].member_name;\n    const delegatedUntil = new Date(\n      reportDetail.ReportDelegation[0].active_to_utc * 1000\n    );\n    this.openActionForm(\n      {\n      title: `Delegated to ${user} until ${moment(delegatedUntil).format(\n        'DD MMM YYYY'\n      )}`,\n      action: 'revokeDelegation',\n      type: 'revokeDelegation',\n      reportDetails: reportDetail,\n      memberId: reportDetail.ReportDelegation[0].member_id,\n      showSaveButton: false,\n      showCancelButton: true,\n      showRevokeButton: true,\n      },\n      {\n        isTextEditor: true,\n        isList: false,\n        isUpload: false,\n      }\n    );\n  }\n\n  workflowEngineAction(\n    type: 'EDIT_RESPONSIBILITY' | 'LOG_AN_ISSUE' | 'ENTRUST',\n    reportId: string\n  ) {\n    if (type === 'LOG_AN_ISSUE') {\n      const payload = {\n        type: type,\n        data: {\n          workflowType: 'LAI',\n          workflowMode: 'CREATE',\n          allowedWorkflows: [],\n          id: '',\n          isWorkflowOpened: true,\n          frameworkDetails: [],\n          responsibilityData: {\n            responsibilityId: this.responsibility?.ReportId,\n            responsibilityName: `${this.responsibility?.ControlId} ${this.responsibility?.ReportName}`,\n            rcId: (this.responsibility?.RC_details_array ?? []).map(\n              (item: any) => item.rc_id\n            ),\n\n            responsibilityObjectId: this.responsibility.EncryptedReportId,\n            responsibiltyName: '',\n            responsibiltyId: '',\n          },\n          openedFrom: 'COMPLIANCE_WORKROOM',\n          entrustButtonName: '',\n        },\n      };\n      this.workflowService.workFlowConfig = payload?.data;\n      this.workflowService\n        .openWorkflow('CREATE', 'LAI', 'COMPLIANCE_WORKROOM', '', this.features)\n        .subscribe((res) => {\n          if (res) {\n            this.commonService.refreshResponsibility$.next(this.id);\n          }\n        });\n    } else if (type === 'EDIT_RESPONSIBILITY') {\n      const payload = {\n        type: type,\n        data: {\n          workflowType: 'CAR',\n          workflowMode: 'EDIT',\n          allowedWorkflows: [],\n          id: this.responsibility.EncryptedReportId,\n          isWorkflowOpened: true,\n          frameworkDetails: [],\n          responsibilityData: {\n            responsibilityId: '',\n            responsibilityName: '',\n            rcId: null,\n            responsibilityObjectId: '',\n            responsibiltyName: '',\n            responsibiltyId: '',\n          },\n          openedFrom: 'COMPLIANCE',\n          entrustButtonName: 'Update',\n        },\n      };\n    } else if (type === 'ENTRUST') {\n      const payload = {\n        type: type,\n        data: {\n          workflowType: 'CAR',\n          workflowMode: 'EDIT',\n          allowedWorkflows: [],\n          id: this.responsibility.EncryptedReportId,\n          isWorkflowOpened: true,\n          frameworkDetails: [],\n          responsibilityData: {\n            responsibilityId: '',\n            responsibilityName: '',\n            rcId: null,\n            responsibilityObjectId: '',\n            responsibiltyName: '',\n            responsibiltyId: '',\n          },\n          openedFrom: 'COMPLIANCE',\n          entrustButtonName: 'Entrust',\n        },\n      };\n\n      this.workflowService.workFlowConfig = payload?.data;\n      this.workflowService\n        .openWorkflow(\n          'EDIT',\n          'CAR',\n          'COMPLIANCE_WORKROOM',\n          this.id,\n          this.features\n        )\n        .subscribe((res) => {\n          if (res) {\n            this.commonService.refreshResponsibility$.next(this.id);\n          }\n        });\n    }\n  }\n\n  pauseDueDates() {\n    this.openActionForm(\n      {\n      title: 'Pause this Responsibility',\n      type: 'pauseResponsibility',\n      action: 'pauseResponsibility',\n      showDate: '',\n      minDate: new Date(),\n      maxDate: '',\n      calenderPlaceHolder: 'From',\n      calenderPlaceHolder2: 'To',\n      showCancelButton: false,\n      showSaveButton: true,\n      reportDetails: this.responsibility,\n      },\n      {\n        isTextEditor: false,\n        isList: false,\n        isUpload: false,\n      }\n    );\n  }\n\n  applyAction(event: any) {\n    this.showFormPopUp = false;\n    if (event.resultMessage === 'cancel') return;\n    const data = event.info[0];\n    switch (event.type) {\n      case 'addNewDueDate':\n        this.addNewDueDate(data);\n        break;\n      case 'addAPastEvent':\n        this.addPastEventNow(data);\n        break;\n      case 'pauseResponsibility':\n        this.pauseDueDatesNow(data);\n        break;\n      case 'editDueDate':\n        this.onEditDueDate(data);\n        break;\n      case 'revokeDelegation':\n        this.terminateDelegation(data);\n        break;\n      case 'revokeHandover':\n        this.terminateHandover(data);\n        break;\n    }\n  }\n\n  /**\n   * The function takes in a result object, which has a fromDate and toDate property. The function then\n   * makes a post request to the server with the fromDate and toDate properties. If the response is\n   * 404, it shows a snackbar with a message. If the response is anything else, it shows a different\n   * snackbar with a different message.\n   * @param {any} result - any = {\n   */\n  pauseDueDatesNow(result: any) {\n    const url = `compliance_post/?mode=complianceReport/pauseDueDate&objectId=${this.id}&bypass-businessCycle=true`;\n    if (result && result.fromDate !== null && result.toDate !== null) {\n      let payload = {\n        from_date: result.fromDate,\n        to_date: result.toDate,\n      };\n      this.apiService\n        .post(url, payload)\n        .pipe(takeUntil(this.unsubscribe))\n        .subscribe({\n          next: (res: any) => {\n            if (res.status === 404) {\n              this.snackBarService.show(\n                'There are no due dates between the duration specified by you.',\n                'alert'\n              );\n            } else {\n              this.getResponsibilityDetails();\n              this.commonService.refreshResponsibility$.next(this.id);\n              this.snackBarService.show(\n                'The responsibility has been paused and will not generate any alerts.',\n                'success'\n              );\n            }\n          },\n          error: () => {\n            this.commonService.showErrorSnackbar();\n          },\n        });\n    }\n  }\n\n  editDueDates() {\n    this.openActionForm(\n      {\n      title: 'Edit a Due Date',\n      type: 'editDueDate',\n      action: 'editDueDate',\n      showDate: '',\n      minDate: new Date(),\n      listPlaceHolder: 'Due date',\n      calenderPlaceHolder2: 'Select an upcoming due date to modify',\n      reportDetails: this.responsibility,\n      showCancelButton: false,\n      listItems: [],\n      showSaveButton: true,\n      _id: this.id,\n      },\n      {\n        isTextEditor: true,\n        isList: true,\n        isUpload: false,\n      }\n    );\n  }\n\n  //TODO add business cycle dynamic.\n  onEditDueDate(result: any) {\n    const url = `compliance_put/?mode=complianceReport/editDuedate&duedate_id=${result.oldDateId}`;\n    if (result.oldDateId && result.newDate != null) {\n      const payload = {\n        date: result?.newDate,\n        reason: result?.reason,\n      };\n      this.apiService\n        .put(url, payload)\n        .pipe(takeUntil(this.unsubscribe))\n        .subscribe({\n          next: () => {\n            this.getResponsibilityDetails();\n            this.commonService.refreshResponsibility$.next(this.id);\n            this.snackBarService.show(\n              'The due date has been modified successfully.',\n              'success'\n            );\n          },\n          error: () => {\n            this.commonService.showErrorSnackbar();\n          },\n        });\n    }\n  }\n\n  openDialogPastEvent(): void {\n    const data = {\n      title: 'Add a Past Event',\n      type: 'addAPastEvent',\n      action: 'addAPastEvent',\n      showDate: new Date(),\n      maxDate: new Date(),\n      calenderPlaceHolder: 'Event Date',\n      listPlaceHolder: 'Event Status',\n      reportDetails: this.responsibility,\n      showSaveButton: true,\n      showCancelButton: true,\n      listItems: [\n        { value: 1, name: 'Completed' },\n        { value: 2, name: 'Delayed' },\n        { value: 3, name: 'Not Completed' },\n      ],\n    };\n\n    const dialogRef = this.dialogOpen.open(AddPastEventDialogComponent, {\n      data: { data },\n      position: 'CENTER',\n      background: 'black',\n    });\n\n    dialogRef.afterEvent.pipe(takeUntil(this.unsubscribe)).subscribe({\n      next: (event: any) => {\n        this.applyAction(event);\n      },\n    });\n  }\n\n  /**\n   * It takes in a data object, and then makes a post request to the API with the data object.\n   *\n   * The data object is a form that the user fills out.\n   *\n   * The form has a date field, a compliance field, a reason field, and an attachment field.\n   *\n   * The date field is a date picker.\n   *\n   * The compliance field is a dropdown.\n   *\n   * The reason field is a textarea.\n   *\n   * The attachment field is a file upload.\n   *\n   * The user can fill out the form and submit it.\n   *\n   * The form is submitted by calling the addPastEventNow function.\n   *\n   * The addPastEventNow function takes in the data object and makes a post request to the API with the\n   * data object.\n   *\n   * The API then takes the data object and adds it to the database.\n   *\n   * The user can\n   * @param {any} data - any = {\n   */\n  addPastEventNow(data: any) {\n    const url = `compliance_post/?mode=complianceReport/addPastEvent&objectId=${this.id}&bypass-businessCycle=true`;\n    const payload = {\n      event_date: data?.dateDate ?? '',\n      status: data?.compliance,\n      reason: data?.reason,\n      attachmentIds: data?.attachmentIds,\n    };\n    this.apiService\n      .post(url, payload)\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe({\n        next: () => {\n          this.getResponsibilityDetails();\n          this.commonService.refreshResponsibility$.next(this.id);\n          this.snackBarService.show(\n            'A past event has been recorded for this responsibility.',\n            'success'\n          );\n        },\n        error: (err: any) => {\n          this.commonService.showErrorSnackbar();\n        },\n      });\n  }\n\n  /**\n   * Add new due date\n   * @param {any} event - {\n   */\n  addNewDueDate(event: any) {\n    const url = `compliance_post/?mode=complianceReport/addNewDuedate&reportId=${this.id}&bypass-businessCycle=true`;\n    this.apiService\n      .post(url, event)\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe({\n        next: (res: any) => {\n          this.getResponsibilityDetails();\n          this.commonService.refreshResponsibility$.next(this.id);\n          this.snackBarService.show(\n            'A new due date has been added for this responsibility.',\n            'success'\n          );\n        },\n        error: () => {\n          this.commonService.showErrorSnackbar();\n        },\n      });\n  }\n\n  goToWorkroom(id: string) {\n    this.workroomUrl =\n      'https://' +\n      window.location.host +\n      '/compliance/#/compliance/responsibility-workroom/overview?ReportId=' +\n      id;\n  }\n\n  terminateDelegation(event: any) {\n    let reasonRevoke;\n    if (event.reason && event.reason !== '') {\n      reasonRevoke = event.reason;\n    } else {\n      reasonRevoke = 'N/A';\n    }\n    const payLoad = {\n      id: event.repo.EncryptedReportId,\n      delegate_to: event.memberId,\n      action: 'TERMINATE_DELEGATION',\n      reason: reasonRevoke,\n    };\n    const url: string = `compliance_post/?mode=delegateResponsibility&bypass-businessCycle=true`;\n\n    this.apiService.post(url, payLoad).subscribe({\n      next: () => {\n        this.getResponsibilityDetails();\n        this.commonService.refreshResponsibility$.next(this.id);\n        this.snackBarService.show(\n          `${event.repo.ReportDelegation[0].member_name} has been removed as a delegatee from this responsibility.`,\n          'success'\n        );\n      },\n      error: (err: any) => {\n        this.commonService.showErrorSnackbar();\n      },\n    });\n  }\n\n  terminateHandover(event: any) {\n    const payload = {\n      report_id: event.repo.ReportId,\n      handover_to: event.memberId,\n      action: 'HANDOVER_TERMINATE',\n      reason: event.reason,\n    };\n\n    const url: string = `compliance_post/?mode=complianceReport/TerminateHandover&bypass-businessCycle=true`;\n\n    this.apiService.post(url, payload).subscribe({\n      next: () => {\n        this.getResponsibilityDetails();\n        this.commonService.refreshResponsibility$.next(this.id);\n        this.snackBarService.show(\n          `The handover request sent to ${this.responsibility?.handover_data_arr[0]?.handover_member_name} has been revoked.`,\n          'success'\n        );\n      },\n      error: (err: any) => {\n        this.commonService.showErrorSnackbar();\n      },\n    });\n  }\n\n  get keyResponsibilityEnabled() {\n    return (\n      this.responsibility.read_only_flag === 1 ||\n      this.responsibility?.edit_enable === 0\n    );\n  }\n\n  getReviewerDueDateList() {\n    this.commonApi.reviewerDueDateList$\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe({\n        next: (res: any) => {\n          if (res?.length) {\n            res = [\n              ...new Set(this.commonService.changeDueDateJSON(res, 'REVIEWER')),\n            ];\n            res = res.filter((ele: any) => {\n              if (\n                ele.status !== 'closed' &&\n                ['', 'open'].includes(ele.action_status)\n              ) {\n                return ele;\n              }\n            });\n            const dueDate = res.sort(\n              (first: any, second: any) =>\n                first.due_date_timestamp - second.due_date_timestamp\n            );\n            this.reviewerDueDateList = dueDate;\n          }\n        },\n        error: (error: Error) => {},\n      });\n  }\n\n  fetchActionFlags() {\n    if (this.hasLoadedActions) return;\n\n    this.isLoadingActions = true;\n\n    const payload = this.businessCycleService.getBusinessCycle() as any;\n    payload.dashboard_id = '';\n\n    this.apiService\n      .post(\n        `compliance_post/?mode=reportDetails&id=${this.id}&type=action`,\n        payload\n      )\n      .subscribe({\n        next: (response: any) => {\n          this.responsibility = {\n            ...this.responsibility,\n            ...response,\n          };\n          this.availableActions();\n          this.isLoadingActions = false;\n          this.hasLoadedActions = true;\n        },\n        error: () => {\n          this.isLoadingActions = false;\n          this.commonService.showErrorSnackbar();\n        },\n      });\n  }\n\n  onMoreActionClick() {\n    this.fetchActionFlags();\n  }\n}\n","<ng-container *ngIf=\"!responsibility || loader\">\n  <quickview-loader></quickview-loader>\n  <vui-loader-inline></vui-loader-inline>\n</ng-container>\n<div class=\"qv-quick-view-dialog\" *ngIf=\"responsibility && !loader\">\n  <a\n    [href]=\"workroomUrl\"\n    class=\"workroom-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-pt-3 vx-pb-3 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"\n  >\n    <div class=\"workroom-btn-inner vx-d-flex vx-align-center\">\n      <i class=\"icons vx-fs-12 vx-mb-2\">&#xeb32;</i>GO TO THE RESPONSIBILITY\n      WORKROOM\n    </div>\n  </a>\n  <div\n    class=\"qv-quick-view-dialog-heading vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-mb-2\"\n  >\n    <div *ngIf=\"markAsComplete\" class=\"vx-d-flex vx-align-center\">\n      <button class=\"back-btn vx-fs-16 vx-label-txt vx-p-0 vx-m-0 vx-mr-3\">\n        <i class=\"icons\">&#xeaea;</i>\n      </button>\n      <div class=\"vx-fs-14 vx-label-txt\">\n        Mark this responsibility as complete\n      </div>\n    </div>\n    <div *ngIf=\"!markAsComplete\" class=\"vx-d-flex vx-align-center\">\n      <div class=\"vx-avatar-group qv-avatar vx-mr-2\">\n        <avatar\n          class=\"qv-avatar-item\"\n          [userDetails]=\"responsibility | getUserProfile : 'ASSIGN_BY'\"\n        ></avatar>\n        <avatar\n          class=\"qv-avatar-item\"\n          *ngIf=\"!responsibility?.EntrustedToMembers?.length\"\n          [avatarColor]=\"'green'\"\n          [userDetails]=\"responsibility | getUserProfile : 'ASSIGN_TO'\"\n        ></avatar>\n\n        <div\n          *ngIf=\"responsibility?.EntrustedToMembers?.length\"\n          class=\"vx-avatar md cursor-pointer\"\n          appPopover\n          (click)=\"users.popover()\"\n          placement=\"left\"\n        >\n          <span\n            class=\"green\"\n            [appTooltip]=\"responsibility?.EntrustedToMembers | AssigneeTooltip\"\n            placement=\"bottom-left\"\n            delay=\"0\"\n            type=\"black\"\n            [tooltipMandatory]=\"true\"\n            >+{{ responsibility?.EntrustedToMembers?.length }}</span\n          >\n        </div>\n\n        <app-popover #users>\n          <div class=\"action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"let assignee of responsibility?.EntrustedToMembers\">\n                <div class=\"avatar-card\">\n                  <avatar\n                    [userDetails]=\"assignee | getUserProfile : ''\"\n                  ></avatar>\n                  <span\n                    class=\"value\"\n                    [appTooltip]=\"assignee.member_name\"\n                    placement=\"bottom-left\"\n                    delay=\"0\"\n                    type=\"black\"\n                    [tooltipMandatory]=\"false\"\n                    >{{ assignee?.member_name }}</span\n                  >\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n      </div>\n      <button\n        *ngIf=\"!responsibility?.is_key_compliance\"\n        (click)=\"\n          keyResponsibilityEnabled ? null : confirm('MAKE_KEY_RESPONSIBILITY')\n        \"\n        class=\"star vx-fs-8 vx-p-0 vx-mr-2\"\n        [class.active]=\"responsibility?.is_key_compliance\"\n      >\n        <i class=\"icons\">&#xea70;</i>\n      </button>\n      <button\n        *ngIf=\"responsibility?.is_key_compliance\"\n        (click)=\"\n          keyResponsibilityEnabled ? null : confirm('REMOVE_KEY_RESPONSIBILITY')\n        \"\n        class=\"star vx-fs-8 vx-p-0 vx-mr-2\"\n        [class.active]=\"responsibility?.is_key_compliance\"\n      >\n        <i class=\"icons\">&#xea70;</i>\n      </button>\n      <div class=\"id vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-1\">\n        {{ responsibility?.ControlId }}\n      </div>\n      <div\n        class=\"responsibility-name vx-fs-14 vx-label-txt\"\n        [appTooltip]=\"responsibility?.ReportName\"\n        placement=\"bottom-left\"\n        delay=\"0\"\n        type=\"black\"\n        [tooltipMandatory]=\"false\"\n      >\n        {{ responsibility?.ReportName }}\n      </div>\n    </div>\n    <div class=\"vx-d-flex vx-align-center\">\n      <ng-container *ngIf=\"!markAsComplete\">\n        <button\n          *ngIf=\"false\"\n          type=\"button\"\n          class=\"qr-action vx-fs-10 vx-txt-blue vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"\n        >\n          <img [src]=\"ASSETS.qrCode\" alt=\"\" />\n          <i class=\"icons\">&#xe91b;</i>\n        </button>\n        <button\n          *ngIf=\"!responsibility?.read_only_flag\"\n          type=\"button\"\n          appPopover\n          (click)=\"onMoreActionClick(); moreAction.popover()\"\n          placement=\"right\"\n          class=\"more-action vx-fs-16 vx-txt-blue vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"\n        >\n          <i class=\"icons\">&#xe920;</i>\n        </button>\n        <button\n          type=\"button\"\n          class=\"more-action view-btn\"\n          *ngIf=\"responsibility?.read_only_flag\"\n          id=\"view only access\"\n        >\n          <i class=\"icons\">&#xeae5;</i> View Only Access\n        </button>\n      </ng-container>\n      <button\n        type=\"button\"\n        class=\"close vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"\n        (click)=\"onClose()\"\n        [class.disabled]=\"false\"\n        [appTooltip]=\"'[Esc] to close'\"\n        placement=\"left\"\n        delay=\"0\"\n        type=\"black\"\n        [tooltipMandatory]=\"true\"\n      >\n        <i class=\"icons vx-fs-16 vx-label-txt\">&#xe93f;</i>\n      </button>\n      <app-popover #moreAction>\n        <div class=\"action-list\">\n          <ul class=\"action-item\">\n            <ng-container *ngIf=\"isLoadingActions\">\n              <li\n                *ngFor=\"let i of [1, 1, 1, 1, 1, 1]\"\n                class=\"vx-d-flex vx-justify-center vx-align-center vx-p-4\"\n              >\n                <text-loader></text-loader>\n              </li>\n            </ng-container>\n            <ng-container *ngIf=\"!isLoadingActions\">\n              <li *ngFor=\"let action of availableActionList\">\n                <button\n                  type=\"button\"\n                  (click)=\"onActionMenuClick(action, moreAction, $event)\"\n                >\n                  <i class=\"icons\" [innerHTML]=\"action?.actionIcon\">&#xeac5;</i>\n                  {{ action?.actionName }}\n                  <div\n                    *ngIf=\"action?.id === 'handoverRevoke'\"\n                    class=\"vx-avatar sm vx-ml-2\"\n                  >\n                    <img\n                      *ngIf=\"action?.profile_pic\"\n                      [src]=\"action?.profile_pic | profile\"\n                      [alt]=\"''\"\n                      [appTooltip]=\"action?.tooltip\"\n                      placement=\"bottom-right\"\n                      delay=\"0\"\n                      type=\"black\"\n                      [tooltipMandatory]=\"true\"\n                    />\n                    <span\n                      *ngIf=\"!action?.profile_pic\"\n                      class=\"green\"\n                      [appTooltip]=\"action?.tooltip\"\n                      placement=\"bottom-right\"\n                      delay=\"0\"\n                      type=\"black\"\n                      [tooltipMandatory]=\"true\"\n                      >{{ action?.shortName }}</span\n                    >\n                  </div>\n                </button>\n              </li>\n            </ng-container>\n          </ul>\n        </div>\n      </app-popover>\n    </div>\n  </div>\n  <div class=\"qv-quick-view-dialog-body\" [class.with-complete]=\"markAsComplete\">\n    <ng-container *ngIf=\"!markAsComplete\">\n      <div\n        class=\"vx-d-flex vx-align-center vx-justify-between vx-mb-2 vx-pr-4 vx-pl-4\"\n      >\n        <div class=\"tab-btn vx-d-flex vx-align-center vx-w-100\">\n          <button\n            *ngFor=\"let tab of qvTabs\"\n            type=\"button\"\n            (click)=\"switchTab(tab.id)\"\n            class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-lh-5\"\n            [class.active]=\"currentTab === tab.id\"\n          >\n            {{ tab.name }}\n          </button>\n        </div>\n      </div>\n      <overview\n        *ngIf=\"currentTab === 'OVERVIEW'\"\n        [type]=\"'ASSIGNEE'\"\n        [id]=\"responsibility?.DueDateID\"\n        [dueDate]=\"responsibility.DueDateTimestamp\"\n        [dueDateId]=\"responsibility?.DuedateObjectId\"\n      >\n        <overview-details></overview-details>\n      </overview>\n      <overview\n        *ngIf=\"currentTab === 'REVIEW'\"\n        [loader]=\"commonApi.reviewerLoader\"\n        [isNoData]=\"\n          reviewerDueDateList.length === 0 && !commonApi.reviewerLoader\n        \"\n        [type]=\"currentTab\"\n        [dueDate]=\"reviewerDueDateList[0]?.due_date_timestamp ?? 0\"\n        [dueDateId]=\"reviewerDueDateList[0]?._id\"\n        [id]=\"reviewerDueDateList[0]?.report_due_date_id\"\n      ></overview>\n      <completion-history\n        *ngIf=\"currentTab === 'COMPLETION'\"\n      ></completion-history>\n      <files-folders\n        *ngIf=\"currentTab === 'FILES_FOLDERS'\"\n        [responsibility]=\"responsibility\"\n        [id]=\"id\"\n        [organizationDetails]=\"organizationDetails\"\n        [userDetails]=\"userDetails\"\n      ></files-folders>\n    </ng-container>\n    <ng-container *ngIf=\"markAsComplete\">\n      <mark-as-complete></mark-as-complete>\n    </ng-container>\n  </div>\n</div>\n\n<app-dialog-action-form\n  *ngIf=\"showFormPopUp\"\n  [data]=\"data\"\n  [isTextEditor]=\"isTextEditor\"\n  [isFileUpload]=\"isUpload\"\n  [isList]=\"isList\"\n  (actionData)=\"applyAction($event)\"\n></app-dialog-action-form>\n","import { Component, EventEmitter, OnDestroy, OnInit } from '@angular/core';\nimport { CommonApiService } from '../shared/services/common-api.service';\nimport { Subject, takeUntil } from 'rxjs';\nimport { CommonService } from '../shared/services/common.service';\nimport { SnackBarService } from '../ui-elements/snack-bar/snack-bar.service';\n\n@Component({\n    selector: 'responsibility-quickview-container',\n    templateUrl: './responsibility-quickview-container.component.html',\n    styleUrls: ['./responsibility-quickview-container.component.less'],\n    inputs: ['id', 'features'],\n    outputs: ['close'],\n    standalone: false\n})\nexport class ResponsibilityQuickviewContainerComponent\n  implements OnInit, OnDestroy\n{\n  id: string = '';\n  features: any;\n  organizationDetails: any;\n  close: EventEmitter<any> = new EventEmitter();\n  counter: number = 0;\n  private unsubscribe = new Subject<any>();\n\n  constructor(\n    private commonApiService: CommonApiService,\n    private commonService: CommonService\n  ) {\n    this.getOrgDetails();\n    this.refreshContainer();\n  }\n  ngOnDestroy(): void {\n    this.id = '';\n    this.unsubscribe.next(null);\n    this.unsubscribe.complete();\n  }\n\n  ngOnInit(): void {\n    if (this.id) {\n      this.subscribeDetails();\n    }\n  }\n\n  getOrgDetails() {\n    this.commonApiService.orgDetails$\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe({\n        next: (orgDetails: any) => {\n          this.organizationDetails = orgDetails;\n        },\n        error: (error: Error) => {\n          this.commonService.showErrorSnackbar();\n        },\n      });\n  }\n\n  subscribeDetails(force: boolean = false) {\n    if (this.counter < 2) {\n      this.counter++;\n    }\n    if (!this.commonApiService.isLoading) {\n      this.commonApiService.getResponsibilityDetails(this.id, force);\n    }\n\n    this.commonApiService.getDueDateList(this.id, force);\n    this.commonApiService.getCollaboratorList(this.id, force);\n  }\n\n  refreshQuickView(event: boolean) {\n    if (event && this.commonApiService.isLoading === false) {\n      this.subscribeDetails(true);\n    }\n  }\n\n  refreshContainer() {\n    this.commonService.refreshResponsibility$\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe({\n        next: (res) => {\n          if (res) {\n            this.id = res;\n            this.subscribeDetails(true);\n          }\n        },\n      });\n  }\n\n  onCloseQuickView(event: boolean) {\n    this.commonApiService.responsibilityDetails$.next(null);\n    this.commonApiService.dueDateList$.next([]);\n    this.commonApiService.reviewerDueDateList$.next([]);\n    this.close.emit(event ? true : this.counter > 1);\n  }\n}\n","<quick-view\n  (close)=\"onCloseQuickView($event)\"\n  [id]=\"id\"\n  [organizationDetails]=\"organizationDetails\"\n  [features]=\"features\"\n  (refresh)=\"refreshQuickView($event)\"\n></quick-view>\n<app-snack-bar></app-snack-bar>\n<app-workflow></app-workflow>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CsCheckboxComponent } from './cs-checkbox/cs-checkbox.component';\nimport { TooltipModule } from '../tooltip/tooltip.module';\nimport { CsRadioComponent } from './cs-radio/cs-radio.component';\nimport { CsSwitchComponent } from './cs-switch/cs-switch.component';\nimport { FormsModule } from '@angular/forms';\n\n\n\n@NgModule({\n  declarations: [\n    CsCheckboxComponent,\n    CsRadioComponent,\n    CsSwitchComponent\n  ],\n  imports: [\n    CommonModule,\n    TooltipModule,\n    FormsModule\n  ],\n  exports: [\n    CsCheckboxComponent,\n    CsRadioComponent,\n    CsSwitchComponent\n  ]\n})\nexport class FormgroupModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DialogBoxComponent } from './dialog/dialog.component';\nimport { DialogModule } from '../ui-dialog/ui-dialog.module';\nimport { TransferHandoverComponent } from './transfer-handover/transfer-handover.component';\nimport { PopoverModule } from '../popover/popover.module';\nimport { PauseComponent } from './pause/pause.component';\nimport { EditDueDateComponent } from './edit-due-date/edit-due-date.component';\nimport { VcomplyEditorModule } from '@vcomply/editor';\nimport { AddPastEventComponent } from './add-past-event/add-past-event.component';\nimport { TooltipModule } from '../tooltip/tooltip.module';\nimport { FeedbackStatusComponent } from './feedback-status/feedback-status.component';\nimport { FormgroupModule } from '../formgroup/formgroup.module';\nimport { UploadFilesComponent } from './upload-files/upload-files.component';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n  declarations: [\n    DialogBoxComponent,\n    TransferHandoverComponent,\n    PauseComponent,\n    EditDueDateComponent,\n    AddPastEventComponent,\n    FeedbackStatusComponent,\n    UploadFilesComponent,\n  ],\n  imports: [\n    CommonModule,\n    DialogModule,\n    PopoverModule,\n    VcomplyEditorModule,\n    TooltipModule,\n    FormgroupModule,\n    MatDatepickerModule,\n    NgxMaterialTimepickerModule,\n    FormsModule,\n  ],\n  exports: [\n    DialogBoxComponent,\n    TransferHandoverComponent,\n    PauseComponent,\n    EditDueDateComponent,\n    AddPastEventComponent,\n    FeedbackStatusComponent,\n    UploadFilesComponent,\n    NgxMaterialTimepickerModule,\n  ],\n})\nexport class ActionDialogModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { StopPropagationDirective } from './stop-propagation.directive';\nimport { ConditionalFocusDirective } from './input-focus.directive';\nimport { DragAndDropDirectiveQV } from './drag-and-drop.directive';\n\n@NgModule({\n  declarations: [\n    StopPropagationDirective,\n    ConditionalFocusDirective,\n    DragAndDropDirectiveQV,\n  ],\n  imports: [CommonModule],\n  exports: [\n    StopPropagationDirective,\n    ConditionalFocusDirective,\n    DragAndDropDirectiveQV,\n  ],\n})\nexport class DirectiveModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NoDataComponent } from './no-data.component';\n\n@NgModule({\n  declarations: [NoDataComponent],\n  imports: [CommonModule],\n  exports: [NoDataComponent],\n})\nexport class NoDataModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GetUserProfilePipe } from './get-user-profile.pipe';\nimport { SanitizeHtmlPipe } from './sanitize-html.pipe';\nimport { EditorHtmlPipe } from './editor-html.pipe';\nimport { GetLogClassPipe } from './get-log-class.pipe';\nimport { ChangeTimezonePipe } from './change-timezone.pipe';\nimport { ProfilePipe } from './profile.pipe';\nimport { SearchPipe } from './search.pipe';\nimport { StripHtmlPipe } from './strip-html.pipe';\nimport { ReadMorePipe } from './read-more.pipe';\nimport { AssigneeTooltipPipe } from './assignee-tooltip.pipe';\nimport { safeHTMLPipe } from './safeUrl.pipe';\n\n@NgModule({\n  declarations: [\n    GetUserProfilePipe,\n    SanitizeHtmlPipe,\n    EditorHtmlPipe,\n    GetLogClassPipe,\n    ChangeTimezonePipe,\n    ProfilePipe,\n    SearchPipe,\n    StripHtmlPipe,\n    ReadMorePipe,\n    AssigneeTooltipPipe,\n    safeHTMLPipe,\n  ],\n  imports: [CommonModule],\n  exports: [\n    GetUserProfilePipe,\n    SanitizeHtmlPipe,\n    EditorHtmlPipe,\n    GetLogClassPipe,\n    ChangeTimezonePipe,\n    ProfilePipe,\n    SearchPipe,\n    StripHtmlPipe,\n    ReadMorePipe,\n    AssigneeTooltipPipe,\n    safeHTMLPipe,\n  ],\n})\nexport class PipesModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { LogEditorComponent } from './log-editor.component';\nimport { VcomplyEditorModule } from '@vcomply/editor';\nimport { TooltipModule } from '../../../ui-elements/tooltip/tooltip.module';\nimport { FormsModule } from '@angular/forms';\nimport { FilesComponent } from '../files/files.component';\nimport { PipesModule } from '../../pipes/pipes.module';\nimport { AvatarComponent } from '../avatar/avatar.component';\n\n@NgModule({\n  declarations: [LogEditorComponent],\n  imports: [\n    CommonModule,\n    VcomplyEditorModule,\n    TooltipModule,\n    FormsModule,\n    FilesComponent,\n    PipesModule,\n    AvatarComponent,\n  ],\n  exports: [LogEditorComponent],\n})\nexport class LogEditorModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TextLoaderComponent } from './text-loader.component';\n\n@NgModule({\n  declarations: [TextLoaderComponent],\n  imports: [CommonModule],\n  exports: [TextLoaderComponent]\n})\nexport class TextLoaderModule {} ","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DueDateLogComponent } from './due-date-log.component';\nimport { TooltipModule } from '../../../ui-elements/tooltip/tooltip.module';\nimport { AvatarComponent } from '../avatar/avatar.component';\nimport { PipesModule } from '../../pipes/pipes.module';\nimport { FilesComponent } from '../files/files.component';\nimport { LogEditorModule } from '../log-editor/log-editor.module';\nimport { DialogModule } from '../../../ui-elements/ui-dialog/ui-dialog.module';\nimport { ActionDialogModule } from '../../../ui-elements/action-dialog/action-dialog.module';\nimport { VcomplyEditorModule } from '@vcomply/editor';\nimport { TextLoaderModule } from '../text-loader/text-loader.module';\n\n@NgModule({\n  declarations: [DueDateLogComponent],\n  imports: [\n    CommonModule,\n    VcomplyEditorModule,\n    TooltipModule,\n    AvatarComponent,\n    PipesModule,\n    FilesComponent,\n    LogEditorModule,\n    DialogModule,\n    ActionDialogModule,\n    TextLoaderModule,\n  ],\n  exports: [DueDateLogComponent],\n})\nexport class DueDateLogModule {}\n","import { Injectable } from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\nimport { Observable, catchError, throwError } from 'rxjs';\n\n@Injectable()\nexport class TokenInterceptor implements HttpInterceptor {\n\n  constructor() {}\n\n  intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n\n    const token = this.getAuthorizationToken();\n    if (request.url.includes('bypass-token=true') || request.url.includes('fileupload')) {\n      return next.handle(request.clone({})).pipe(\n        catchError((err) => {\n          if ([401].indexOf(err.status) !== -1) {\n\n          }\n\n          return throwError(() => err);\n        })\n      );\n    }  else {\n      return next.handle(request.clone({ setHeaders: { token } })).pipe(\n        catchError((err) => {\n          if ([401].indexOf(err.status) !== -1) {\n          }\n          return throwError(() => err);\n        })\n      );\n    }\n  }\n\n  interceptToken() {\n\n  }\n\n\n  getAuthorizationToken() {\n    const TOKEN = localStorage.getItem('currentUser');\n    let currentUser;\n    TOKEN !== null ? (currentUser = JSON.parse(TOKEN)) : (currentUser = {});\n    return currentUser.token;\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ConfirmQuickComponent } from './confirm/confirm.component';\nimport { HandoverTransferComponent } from './handover-transfer/handover-transfer.component';\nimport { FormsModule } from '@angular/forms';\nimport { DeleteParentRespQuickComponent } from './delete-parent-resp/delete-parent-resp.component';\nimport {MatDatepickerModule} from '@angular/material/datepicker';\nimport { DateAdapter, MatNativeDateModule, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { DialogModule } from '../../../ui-elements/ui-dialog/ui-dialog.module';\nimport { PopoverModule } from '../../../ui-elements/popover/popover.module';\nimport { TooltipModule } from '../../../ui-elements/tooltip/tooltip.module';\nimport { PipesModule } from '../../pipes/pipes.module';\n\nexport const MY_FORMATS = {\n  parse: {\n    dateInput: 'LL',\n  },\n  display: {\n    dateInput: 'DD MMM YYYY',\n    monthYearLabel: 'MMM YYYY',\n    dateA11yLabel: 'LL',\n    monthYearA11yLabel: 'MMMM YYYY',\n  },\n};\n\n@NgModule({\n  declarations: [ConfirmQuickComponent, HandoverTransferComponent, DeleteParentRespQuickComponent],\n  imports: [\n    DialogModule,\n    CommonModule,\n    FormsModule,\n    PopoverModule,\n    TooltipModule,\n    MatDatepickerModule,\n    MatNativeDateModule,\n    PipesModule\n  ],\n  exports:[\n    ConfirmQuickComponent\n  ],\n  providers:[\n    { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\n    { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },\n  ]\n})\nexport class QuickActionDialogModule { }\n","import { NgModule } from '@angular/core';\nimport { DialogActionFormComponent } from './dialog-form.component';\nimport { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';\n\n@NgModule({\n  imports: [\n    DialogActionFormComponent,\n    NgxMaterialTimepickerModule,\n  ],\n  exports: [DialogActionFormComponent, NgxMaterialTimepickerModule],\n})\nexport class DialogFormModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SnackBarComponent } from './snack-bar/snack-bar.component';\n\n@NgModule({\n  declarations: [SnackBarComponent],\n  imports: [CommonModule],\n  exports: [SnackBarComponent],\n})\nexport class SnackBarModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { VLoaderInlineComponent } from './v-loader-inline/v-loader-inline.component';\n\n\n\n@NgModule({\n  declarations: [\n    VLoaderInlineComponent\n  ],\n  imports: [\n    CommonModule,\n  ],\n  exports: [\n    VLoaderInlineComponent\n  ]\n})\nexport class VLoaderModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { AppIframeComponent } from './app-iframe.component';\n\nimport { PipesModule } from '../../pipes/pipes.module';\n\n@NgModule({\n  declarations: [AppIframeComponent],\n  imports: [CommonModule, PipesModule],\n  exports: [AppIframeComponent],\n})\nexport class AppIframeModule {}\n","import { NgModule, Optional } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WorkflowComponent as QuickViewWorkflowComponent } from './workflow/workflow.component';\nimport { WorkflowService } from './workflow.service';\n\nimport { AppIframeModule } from '../shared/components/app-iframe/app-iframe.module';\n\nconst configuration = () => {\n  const config = localStorage.getItem('workflowConfig');\n  if (config) {\n    return JSON.parse(config);\n  } else {\n    return {};\n  }\n};\n\n@NgModule({\n  declarations: [QuickViewWorkflowComponent],\n  imports: [\n    CommonModule,\n    AppIframeModule\n  ],\n  exports: [QuickViewWorkflowComponent],\n  providers: [WorkflowService],\n})\nexport class QuickViewWorkflowModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CircleComponent } from './circle/circle.component';\n\n@NgModule({\n  declarations: [CircleComponent],\n  imports: [CommonModule],\n  exports: [CircleComponent],\n})\nexport class CircleProgressModule {}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { ResponsibilityQuickviewContainerComponent } from './responsibility-quickview-container/responsibility-quickview-container.component';\nimport { QuickViewComponent } from './quickview/quick-view/quick-view.component';\nimport { CommonModule, DatePipe } from '@angular/common';\nimport { PopoverModule } from './ui-elements/popover/popover.module';\nimport { TooltipModule } from './ui-elements/tooltip/tooltip.module';\nimport { DialogModule } from './ui-elements/ui-dialog/ui-dialog.module';\nimport { ActionDialogModule } from './ui-elements/action-dialog/action-dialog.module';\nimport { OverviewComponent } from './quickview/overview/overview.component';\nimport { CompletionHistoryComponent } from './quickview/completion-history/completion-history.component';\nimport { FilesFoldersComponent } from './quickview/files-folders/files-folders.component';\n\nimport { OverviewDetailsComponent } from './quickview/overview-details/overview-details.component';\nimport { FormgroupModule } from './ui-elements/formgroup/formgroup.module';\nimport { DirectiveModule } from './shared/directive/directive.module';\nimport { NoDataModule } from './ui-elements/no-data/no-data.module';\nimport { QuickviewLoaderComponent } from './quickview/quick-view/quickview-loader/quickview-loader.component';\nimport { CompletionLoaderComponent } from './quickview/completion-history/completion-loader/completion-loader.component';\nimport { FilesFoldersLoaderComponent } from './quickview/files-folders/files-folders-loader/files-folders-loader.component';\nimport { MarkAsCompleteComponent } from './quickview/mark-as-complete/mark-as-complete.component';\nimport { DueDateLogModule } from './shared/components/due-date-log/due-date-log.module';\nimport { VcomplyEditorModule } from '@vcomply/editor';\nimport { LogEditorModule } from './shared/components/log-editor/log-editor.module';\nimport { Configurations } from '../configuration';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { TokenInterceptor } from './shared/interceptor/token.interceptor';\nimport { AvatarComponent } from './shared/components/avatar/avatar.component';\nimport { PipesModule } from './shared/pipes/pipes.module';\nimport { QuickActionDialogModule } from './shared/components/dialog/dialog.module';\nimport { FormsModule } from '@angular/forms';\nimport { DialogFormModule } from './ui-elements/dialog-form/dialog.module';\nimport { SnackBarModule } from './ui-elements/snack-bar/snack-bar.module';\nimport { VLoaderModule } from './ui-elements/v-loader/v-loader.module';\nimport { FilesComponent } from './shared/components/files/files.component';\nimport { QuickViewWorkflowModule } from './workflow/workflow.module';\nimport { CircleProgressModule } from './ui-elements/circle-progress/circle-progress.module';\nimport { DetailsLoaderComponent } from './quickview/quick-view/quickview-loader/details-loader/details-loader.component';\nimport { SkeletonLoaderComponent } from './shared/components/skeleton-loader/skeleton-loader.component';\nimport { OverviewPerformanceComponent } from './quickview/overview-performance/overview-performance.component';\nimport { TextLoaderModule } from './shared/components/text-loader/text-loader.module';\n\n@NgModule({\n  declarations: [\n    ResponsibilityQuickviewContainerComponent,\n    QuickViewComponent,\n    OverviewComponent,\n    CompletionHistoryComponent,\n    FilesFoldersComponent,\n    OverviewDetailsComponent,\n    QuickviewLoaderComponent,\n    CompletionLoaderComponent,\n    FilesFoldersLoaderComponent,\n    MarkAsCompleteComponent,\n    DetailsLoaderComponent,\n    SkeletonLoaderComponent,\n    OverviewPerformanceComponent,\n  ],\n  imports: [\n    CommonModule,\n    PopoverModule,\n    TooltipModule,\n    DialogModule,\n    ActionDialogModule,\n    FormgroupModule,\n    DirectiveModule,\n    NoDataModule,\n    DueDateLogModule,\n    VcomplyEditorModule,\n    LogEditorModule,\n    TextLoaderModule,\n    AvatarComponent,\n    PipesModule,\n    QuickActionDialogModule,\n    FormsModule,\n    DialogFormModule,\n    SnackBarModule,\n    FilesComponent,\n    QuickViewWorkflowModule,\n    VLoaderModule,\n    CircleProgressModule,\n  ],\n  exports: [ResponsibilityQuickviewContainerComponent],\n\n  providers: [\n    { provide: HTTP_INTERCEPTORS, useClass: TokenInterceptor, multi: true },\n    DatePipe,\n  ],\n})\nexport class ResponsibilityQuickviewModule {\n  public static forRoot(\n    environmentConfig: Configurations\n  ): ModuleWithProviders<ResponsibilityQuickviewModule> {\n    return {\n      ngModule: ResponsibilityQuickviewModule,\n      providers: [{ provide: Configurations, useValue: environmentConfig }],\n    };\n  }\n}\n","/*\n * Public API Surface of responsibility-quickview\n */\n\nexport * from './lib/responsibility-quickview.module';\nexport * from './lib/responsibility-quickview-container/responsibility-quickview-container.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3.Configurations","i1","i2.ApiService","i4.SnackBarService","i1.ApiService","i4.CommonService","i5","i6.BusinessCycleService","i7.Configurations","i1.SnackBarService","i1.SessionStorageService","i1.safeHTMLPipe","i2.WorkflowService","i4.AppIframeComponent","i1.PopoverService","i2.PopoverComponent","i3.PopoverDirective","i5.ToolTipDirective","i1.DialogRef","i2.DialogConfig","i4.PopoverComponent","i5.PopoverDirective","i3.ApiService","i4.Configurations","i3.SnackBarService","i4.QuickViewService","i8","i10.PopoverComponent","i11.PopoverDirective","i3","i4","i2.QuickViewService","i6.PopoverComponent","i7.PopoverDirective","i2.Configurations","i6.OrganizationUserService","i7","i9.PopoverComponent","i10.PopoverDirective","i11","i12.SearchPipe","i1.Configurations","i4.ToolTipDirective","i5.ProfilePipe","i5.InsertionDirective","i1.CommonService","i2.DialogDataService","i1.FilesService","i1.CommonApiService","i2.FilesService","i6.ToolTipDirective","i8.AvatarComponent","i9.GetUserProfilePipe","i2.CommonService","i4.DialogDataService","i5.ApiService","i6.SnackBarService","i9.AvatarComponent","i10.FilesComponent","i11.LogEditorComponent","i12.TextLoaderComponent","i13.GetUserProfilePipe","i14.EditorHtmlPipe","i15.GetLogClassPipe","i16.ChangeTimezonePipe","i3.CircleComponent","i5.SnackBarService","i6.ActionService","i9.NoDataComponent","i10.DueDateLogComponent","i13.DetailsLoaderComponent","i14.OverviewPerformanceComponent","i15.ChangeTimezonePipe","i3.CsRadioComponent","i2.ToolTipDirective","i3.CommonApiService","i6.FilesService","i8.ActionService","i9.Configurations","i10","i11.PopoverComponent","i12.PopoverDirective","i13.ToolTipDirective","i14.CsCheckboxComponent","i15.CsSwitchComponent","i16.StopPropagationDirective","i17.NoDataComponent","i18.DueDateLogComponent","i19.LogEditorComponent","i20.AvatarComponent","i21.CompletionLoaderComponent","i22.SkeletonLoaderComponent","i23.GetUserProfilePipe","i5.QuickViewService","i7.SnackBarService","i8.CommonService","i9.CommonApiService","i10.Configurations","i12.ToolTipDirective","i13.ConditionalFocusDirective","i14.DragAndDropDirectiveQV","i15.NoDataComponent","i16","i17.FilesFoldersLoaderComponent","i18.ChangeTimezonePipe","i19.ProfilePipe","i5.PopoverComponent","i6.PopoverDirective","i7.ToolTipDirective","i9.FilesComponent","i10.GetUserProfilePipe","i11.SanitizeHtmlPipe","i12.ChangeTimezonePipe","i13.StripHtmlPipe","i14.ReadMorePipe","i2.DetailsLoaderComponent","i1.DialogDataService","i2.CommonApiService","i3.ContainerService","i6.ApiService","i7.QuickViewService","i9.WorkflowService","i10.CommonService","i11.BusinessCycleService","i12.PopoverComponent","i13.PopoverDirective","i14.ToolTipDirective","i15.TextLoaderComponent","i16.AvatarComponent","i17.DialogActionFormComponent","i18.VLoaderInlineComponent","i19.OverviewComponent","i20.CompletionHistoryComponent","i21.FilesFoldersComponent","i22.OverviewDetailsComponent","i23.QuickviewLoaderComponent","i24.MarkAsCompleteComponent","i25.GetUserProfilePipe","i26.ProfilePipe","i27.AssigneeTooltipPipe","i3.SnackBarComponent","i4.WorkflowComponent","i5.QuickViewComponent","QuickViewWorkflowComponent"],"mappings":"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"}