{"version":3,"file":"app-57653778.d152cf98c45d962fa693.bundle.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AAAA;AANA;AAEA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AAMA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAaA;AAAA;AAXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAOA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACnKA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAaA;AAAA;AAXA;AACA;AAEA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AAEA;AAGA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;AC7JA;AACA;AACA;AACA;AACA;AACA;AAEA;AAiBA;AAAA;AAfA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AAEA;AAMA;AAEA;AACA;AACA;AACA;AACA;AACA;AAIA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAEA;AACA;AAGA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAGA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;AChPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAmBA;AACA;AACA;AAEA;AAAA;AArBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AACA;AAGA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAEA;AAEA;AACA;AAGA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAGA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AAEA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AA+BA;AAAA;AA5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAkEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAGA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AAGA;AAEA;AAcA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAGA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;;;;;;;;;;;ACriBA;AACA;AACA;AACA;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACTA;AACA;AACA;AACA;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["webpack://HRMSPortal/./src/components/performancereview/employeeperformacereview/viewachivemetsPopup/viewachivemetsPopup.js","webpack://HRMSPortal/./src/components/performancereview/employeeperformacereview/viewperformacereview/viewperformacereviewcomponent.js","webpack://HRMSPortal/./src/components/performancereview/employeeperformancelist/ExemptemployeeModel/exemptemployeepopupmodal.js","webpack://HRMSPortal/./src/components/performancereview/employeeperformancelist/addkrapopup/addkrapopupmodal.js","webpack://HRMSPortal/./src/components/performancereview/employeeperformancelist/assignkra/performancereviewmanagerview.js","webpack://HRMSPortal/./src/components/performancereview/employeeperformancelist/employeeperformancelist.js","webpack://HRMSPortal/./src/components/performancereview/employeeperformacereview/viewachivemetsPopup/viewachivemetsPopup.html","webpack://HRMSPortal/./src/components/performancereview/employeeperformacereview/viewperformacereview/viewperformacereviewcomponent.html","webpack://HRMSPortal/./src/components/performancereview/employeeperformancelist/ExemptemployeeModel/exemptemployeepopupmodal.html","webpack://HRMSPortal/./src/components/performancereview/employeeperformancelist/addkrapopup/addkrapopupmodal.html","webpack://HRMSPortal/./src/components/performancereview/employeeperformancelist/assignkra/performancereviewmanagerview.html","webpack://HRMSPortal/./src/components/performancereview/employeeperformancelist/employeeperformancelist.html"],"sourcesContent":["import {inject } from 'aurelia-framework';\r\nimport { JwtService } from '../../../../shared/services/jwtservice';\r\nimport { DialogController } from 'aurelia-dialog';\r\nimport {DialogService} from 'aurelia-dialog';\r\nimport { PerformanceMangemantService } from \"../../../../shared/services/performancereviewservice\";\r\nimport {config} from \"../../../../shared/services/config\";\r\nimport {AddAchivemetsPopup} from \"../addachivemetsPopup/addachivemetsPopup\";\r\nimport flatpickr from \"flatpickr\";\r\nimport {AlertpopupComponent} from \"../../../alertpopup/alertpopupcomponent\";\r\nimport {EditAddAchivemetsPopup} from \"../editaddachivementspopup/editaddachivementspopup\";\r\n@inject(DialogController,JwtService,PerformanceMangemantService,DialogService)\r\nexport class ViewAchivemetsPopup{\r\n isLoading = false;\r\n static inject = [DialogController,Element];\r\n isDragging = false;\r\n dialog;\r\n pageSize = config.kra_PazeSize;\r\n\r\n constructor(controller,JwtService,PerformanceMangemantService,DialogService){\r\n this.controller = controller;\r\n this.jwtService= JwtService;\r\n this.dialogService = DialogService;\r\n this.empid = this.jwtService.getEmployeeId();\r\n this.performanceMangemant = PerformanceMangemantService;\r\n }\r\n activate(AchivemetsData){\r\n this.params =AchivemetsData ;\r\n this.ReviewTypeID=this.params.ReviewTypeID;\r\n this.ViewID=this.params.ViewID;\r\n this.ReferenceID=this.params.referenceID;\r\n this.Category=this.params.Category,\r\n this.KRAtitle=this.params.KRAtitle,\r\n this.MeasurementCriteria=this.params.MeasurementCriteria,\r\n this.TargetCompletionDateTxt=this.params.TargetCompletionDateTxt\r\n this.EmployeeCategoryID=this.params.EmployeeCategoryID,\r\n this.EmployeeGoalID=this.params.EmployeeGoalID,\r\n this.RecordStatusCode=this.params.RecordStatusCode,\r\n this.ReviewToText=this.params.ReviewToText,\r\n this.MarkasComplete=this.params.MarkasComplete,\r\n this.viewTypeId=this.params.viewTypeId\r\n }\r\n attached(){\r\n this.isLoading = true;\r\n this.performanceMangemant.GetAchievements(this.EmployeeGoalID,this.ReviewTypeID,this.ViewID).then(data=>\r\n {\r\n this.getAchievements=data;\r\n this.Files = this.getAchievements.map(option => option.DocumentPath);\r\n if ( this.getAchievements.map(option => option.DocumentPath)) {\r\n this.file = this.getAchievements.map(option => option.DocumentPath);\r\n this.DocumentName = this.getAchievements.map(option => option.DocumentPath);\r\n }\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n cancel(){\r\n this.controller.cancel();\r\n }\r\n downloadFile(DocumentPath){\r\n const downloadfile = config.img_url +DocumentPath;\r\n const link = document.createElement('a');\r\n link.href = downloadfile;\r\n link.download = this.DocumentPath;\r\n link.target = '_blank';\r\n link.click();\r\n }\r\n\r\n}\r\n","import {inject} from 'aurelia-framework';\r\nimport {JwtService} from '../../../../shared/services/jwtservice';\r\nimport {DialogController} from 'aurelia-dialog';\r\nimport {DialogService} from 'aurelia-dialog';\r\nimport {PerformanceMangemantService} from \"../../../../shared/services/performancereviewservice\";\r\nimport {config} from \"../../../../shared/services/config\";\r\nimport {ViewAchivemetsPopup} from \"./../viewachivemetsPopup/viewachivemetsPopup\";\r\n\r\n\r\n@inject(DialogController, JwtService, DialogService, PerformanceMangemantService)\r\nexport class ViewPerformanceReview {\r\n pageSize = config.kra_PazeSize;\r\n topicsPageSize = config.kra_PazeSize;\r\n viewTypeId = false;\r\n ViewID = 2;\r\n isOpen = null;\r\n Successmessages = false;\r\n kraCategories = [];\r\n markascomplete = false;\r\n activeTabIndex = 0;\r\n selectedDiv = 0;\r\n\r\n constructor(controller, JwtService, DialogService, PerformanceMangemantService) {\r\n this.controller = controller;\r\n this.jwtService = JwtService;\r\n this.empid = this.jwtService.getEmployeeId();\r\n this.dialogService = DialogService;\r\n this.performaceService = PerformanceMangemantService;\r\n }\r\n\r\n activate(approveData) {\r\n this.params = approveData;\r\n this.ActionName = this.params.ActionName,\r\n this.RecordStatusCode = this.params.RecordStatusCode,\r\n this.PeriodID = this.params.PeriodID,\r\n this.KRAPerformanceReviewID = this.params.KRAPerformanceReviewID,\r\n this.ReviewTypeID = this.params.ReviewTypeID,\r\n this.ReviewFromText = this.params.ReviewFromText,\r\n this.ReviewToText = this.params.ReviewToText\r\n }\r\n\r\n attached() {\r\n this.performaceService.KraCategories(this.empid, this.PeriodID, this.ReviewTypeID, this.ViewID)\r\n .then(data => {\r\n this.kraCategories = data.EmployeeCategoryList;\r\n if (this.kraCategories.length > 0) {\r\n const defaultCategory = this.kraCategories[0]; // Change this to the desired category\r\n this.toggleDisplay(defaultCategory);\r\n }\r\n });\r\n this.performaceService.GetReviewHistory(this.empid, this.PeriodID, this.ReviewTypeID)\r\n .then(data => {\r\n this.GetReviewHistory = data;\r\n });\r\n\r\n this.performaceService.GetAdditionalNotesandComments(this.KRAPerformanceReviewID)\r\n .then(data => {\r\n this.additionalcomments = data;\r\n this.Files = this.additionalcomments.map(option => option.DocumentPath);\r\n if (this.additionalcomments.map(option => option.DocumentPath)) {\r\n this.file = this.additionalcomments.map(option => option.DocumentPath);\r\n this.DocumentName = this.additionalcomments.map(option => option.DocumentPath);\r\n }\r\n });\r\n }\r\n\r\n activateTab(index) {\r\n this.selectedDiv = index;\r\n this.kraCategories.forEach((category, idx) => {\r\n category.showDiv = (index === idx);\r\n });\r\n }\r\n\r\n\r\n openFileDialog() {\r\n document.getElementById('attachments').click();\r\n }\r\n\r\n handleFileSelect(files) {\r\n const file = files[0];\r\n const maxSize = 2.5 * 1024 * 1024;\r\n if (file.size > maxSize) {\r\n this.fileMessage = 'File size should be less than 2.5 MB.';\r\n setTimeout(() => {\r\n this.fileMessage = null;\r\n }, 4000);\r\n this.removeFile();\r\n return;\r\n }\r\n else if (file.size <= maxSize) {\r\n this.files = file;\r\n let reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n this.DocumentNames = file.name;\r\n reader.onload = () => {\r\n this.files = reader.result;\r\n };\r\n }\r\n }\r\n\r\n removeFile() {\r\n this.files = null;\r\n this.DocumentNames = '';\r\n const fileInput = document.getElementById('attachments');\r\n if (fileInput) {\r\n fileInput.value = '';\r\n }\r\n }\r\n\r\n toggleDisplay(category) {\r\n this.kraCategories.forEach(cat => {\r\n if (cat !== category) {\r\n cat.showDiv = false;\r\n }\r\n });\r\n\r\n category.showDiv = !category.showDiv;\r\n }\r\n\r\n AchivemetsPopup(referenceID, Category, Goal, MeasurementCriteria, TargetCompletionDateTxt, EmployeeCategoryID, EmployeeGoalID) {\r\n const AchivemetsData = {\r\n ReviewTypeID: this.ReviewTypeID,\r\n ViewID: this.ViewID,\r\n referenceID: referenceID,\r\n Category: Category,\r\n KRAtitle: Goal,\r\n MeasurementCriteria: MeasurementCriteria,\r\n TargetCompletionDateTxt: TargetCompletionDateTxt,\r\n EmployeeCategoryID: EmployeeCategoryID,\r\n EmployeeGoalID: EmployeeGoalID,\r\n RecordStatusCode: this.RecordStatusCode,\r\n ReviewToText: this.ReviewToText,\r\n MarkasComplete: this.markascomplete,\r\n viewTypeId: this.viewTypeId,\r\n };\r\n this.dialogService.open({viewModel: ViewAchivemetsPopup, model: AchivemetsData})\r\n .whenClosed((feedback) => {\r\n if (!feedback.wasCancelled) {\r\n this.messages = \"KRA updated successfully.\";\r\n this.Successmessages = true;\r\n setTimeout(() => {\r\n this.messages = null\r\n }, 5000);\r\n }\r\n })\r\n }\r\n\r\n openCategory(index) {\r\n this.isOpen = index;\r\n }\r\n\r\n kraClick() {\r\n event.preventDefault();\r\n const clickedDivopen = event.target.closest('div.goalSection > div');\r\n if (clickedDivopen) {\r\n clickedDivopen.classList.toggle('content-open');\r\n }\r\n }\r\n\r\n BackPage() {\r\n const performancereviewURLBackPage = `/#/KRAPerformanceReview/MyGoalSheet`;\r\n window.location.href = performancereviewURLBackPage;\r\n }\r\n}\r\n","import {inject} from 'aurelia-framework';\r\nimport {DialogController} from 'aurelia-dialog';\r\nimport 'flatpickr/dist/flatpickr.min.css';\r\nimport {JwtService} from '../../../../shared/services/jwtservice';\r\nimport {KraPerformanceReviewService} from \"../../../../shared/services/kraperformancereviewservice\";\r\nimport {ValidationControllerFactory, ValidationRules} from \"aurelia-validation\";\r\nimport {config} from \"../../../../shared/services/config\";\r\n\r\n@inject(DialogController, KraPerformanceReviewService, JwtService, ValidationControllerFactory)\r\nexport class ExemptemployeeModel {\r\n isDragging = false;\r\n dialog;\r\n static inject = [Element];\r\n uploadedFiles = [];\r\n changedMode = 'true';\r\n pageSize = 5;\r\n ErrorMessageShow = false;\r\n isSubmitting = false;\r\n viewfile = true;\r\n\r\n\r\n constructor(DialogController, KraPerformanceReviewService, JwtService, controllerFactory) {\r\n this.controller = DialogController;\r\n this.KraPerformanceReviewService = KraPerformanceReviewService;\r\n this.jwtService = JwtService;\r\n this.EmpID = this.jwtService.getEmployeeId();\r\n this.controllerFactoryValue = controllerFactory.createForCurrentScope();\r\n\r\n ValidationRules\r\n .ensure('Reason').required().withMessage('Reason is required')\r\n .on(this);\r\n }\r\n\r\n activate(data) {\r\n this.Name = data.name;\r\n this.EmployeePerformanceReviewID = data.EmployeePerformanceReviewID;\r\n }\r\n\r\n attached() {\r\n this.KraPerformanceReviewService.GetExemptEmployeeData(this.EmployeePerformanceReviewID).then(data => {\r\n this.exemptemployeeData = data;\r\n this.employeName = data.EmployeeName;\r\n this.reviewType = data.ReviewType;\r\n this.reviewPeriod = data.ReviewPeriod;\r\n this.ViewDocumentPath = data.DocumentPath;\r\n this.ViewDocumentName = data.DocumentName;\r\n });\r\n\r\n }\r\n\r\n fileValidator() {\r\n const fileInput = document.querySelector('input[type=\"file\"]');\r\n const allowedTypes = ['image/jpeg', 'image/png', 'application/msword', 'application/pdf'];\r\n fileInput.addEventListener('change', (event) => {\r\n const file = event.target.files[0];\r\n const fileType = file.type;\r\n if (!allowedTypes.includes(fileType)) {\r\n this.fileMessage = \"Only JPEG, PNG, PDF and DOC files are allowed.\";\r\n this.fileValidatorRule = true;\r\n } else {\r\n this.fileMessage = null;\r\n this.fileValidatorRule = false;\r\n }\r\n });\r\n }\r\n\r\n handleFileSelect(files) {\r\n this.viewfile = false;\r\n const file = files[0];\r\n const maxSize = 2.5 * 1024 * 1024; // Maximum file size in bytes (2.5 MB)\r\n\r\n if (file.size > maxSize) {\r\n this.fileMessage = 'File size should be less than 2.5 MB.';\r\n setTimeout(() => {\r\n this.fileMessage = null;\r\n }, 3000);\r\n this.removeFile();\r\n return;\r\n } else if (file.size < maxSize) {\r\n\r\n this.file = file;\r\n let reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n this.DocumentName = file.name;\r\n reader.onload = () => {\r\n this.file = reader.result;\r\n };\r\n }\r\n }\r\n\r\n openFileDialog() {\r\n document.getElementById('attachments').click();\r\n }\r\n\r\n removeFile() {\r\n this.DocumentPath = \"\";\r\n this.DocumentName = \"\";\r\n const fileInput = document.getElementById('attachments');\r\n if (fileInput) {\r\n fileInput.value = '';\r\n }\r\n }\r\n\r\n downloadFile() {\r\n if (this.DocumentName.length > 0) {\r\n const downloadfile = config.img_url + this.DocumentPath;\r\n const link = document.createElement('a');\r\n link.href = downloadfile;\r\n link.download = this.DocumentName; // Replace 'filename' with the desired name of the downloaded file\r\n link.target = '_blank';\r\n link.click();\r\n }\r\n }\r\n\r\n Submit() {\r\n event.preventDefault();\r\n this.controllerFactoryValue.validate()\r\n .then(result => {\r\n if (result.valid) {\r\n const refreshEvent = new CustomEvent('refreshExemptData');\r\n event.preventDefault();\r\n const exemptPostData = {\r\n EmployeeID: this.EmpID,\r\n EmployeePerformanceReviewID: this.EmployeePerformanceReviewID,\r\n DocumentName: this.DocumentName,\r\n DocumentPath: this.file,\r\n Reason: this.Reason,\r\n StatusCode: this.Name === \"Exempt\" ? null : \"ACT\"\r\n\r\n };\r\n\r\n if (this.Name == \"Revert Exempt\") {\r\n\r\n this.KraPerformanceReviewService.PostRevertExemptEmploye(exemptPostData)\r\n .then(data => {\r\n this.controller.ok(this.Name);\r\n })\r\n } else {\r\n this.KraPerformanceReviewService.PostExemptEmployeeData(exemptPostData)\r\n .then(data => {\r\n this.controller.ok(this.Name);\r\n this.KraPerformanceReviewService.GetExemptEmployeeData(this.EmployeePerformanceReviewID).then(data => {\r\n this.exemptemployeeData = data;\r\n document.dispatchEvent(refreshEvent);\r\n });\r\n });\r\n }\r\n\r\n }\r\n });\r\n\r\n }\r\n\r\n cancel() {\r\n this.controller.cancel();\r\n }\r\n\r\n}\r\n","import {inject, bindingEngine} from 'aurelia-framework';\r\nimport {DialogController} from 'aurelia-dialog';\r\nimport 'flatpickr/dist/flatpickr.min.css';\r\nimport {JwtService} from '../../../../shared/services/jwtservice';\r\nimport {KraPerformanceReviewService} from \"../../../../shared/services/kraperformancereviewservice\";\r\nimport {ValidationControllerFactory, ValidationRules} from \"aurelia-validation\";\r\n\r\n@inject(DialogController, JwtService, ValidationControllerFactory, KraPerformanceReviewService)\r\nexport class AddKraPopupModal {\r\n selectedOption = 'createNew';\r\n selectedKRARepository = null;\r\n isDragging = false;\r\n dialog;\r\n static inject = [Element];\r\n uploadedFiles = [];\r\n changedMode = 'true';\r\n pageSize = 5;\r\n ErrorMessageShow = false;\r\n checkBoxError = false;\r\n isSubmitting = false;\r\n EmployeePerformanceKRAID = 0;\r\n kraTitleExit = false;\r\n\r\n\r\n constructor(DialogController, JwtService, controllerFactory, KraPerformanceReviewService, bindingEngine) {\r\n this.controller = DialogController;\r\n this.KraPerformanceReviewService = KraPerformanceReviewService;\r\n this.jwtService = JwtService;\r\n this.EmpID = this.jwtService.getEmployeeId();\r\n this.bindingEngine = bindingEngine;\r\n this.controllerFactory = controllerFactory.createForCurrentScope();\r\n\r\n ValidationRules\r\n .ensure('kratitle').required().withMessage('KRA title is required')\r\n .ensure('selectedCategory').required().withMessage('Category is required')\r\n .ensure('Weightage').required().withMessage('Weightage is required')\r\n .ensure('Criteria').required()\r\n .on(this);\r\n }\r\n\r\n activate(params) {\r\n //this.EmployeePerformanceReviewID = params;\r\n this.EmployeePerformanceReviewID=params.EmployeePerformanceReviewID;\r\n this.ReviewTypeID=params.ReviewTypeID;\r\n this.EmployeeID=params.EmployeeID;\r\n this.bulkemployeePerformanceReviewID = params.employeePerformanceReviewID;\r\n\r\n\r\n\r\n }\r\n\r\n attached() {\r\n this.KraPerformanceReviewService.KraCategoryDropdown(this.ReviewTypeID,this.EmployeeID).then(data => {\r\n this.categoryDropdown = data;\r\n });\r\n this.KraPerformanceReviewService.KRARepository(this.ReviewTypeID,this.EmployeeID).then(data => {\r\n this.EmployeePerformanceReviewID\r\n this.KRARepository = data;\r\n // console.log(data);\r\n });\r\n }\r\n\r\n\r\n fileValidator() {\r\n const fileInput = document.querySelector('input[type=\"file\"]');\r\n const allowedTypes = ['image/jpeg', 'image/png', 'application/msword', 'application/pdf'];\r\n fileInput.addEventListener('change', (event) => {\r\n const file = event.target.files[0];\r\n const fileType = file.type;\r\n if (!allowedTypes.includes(fileType)) {\r\n this.fileMessage = \"Only JPEG, PNG, PDF and DOC files are allowed.\";\r\n this.fileValidatorRule = true;\r\n } else {\r\n this.fileMessage = null;\r\n this.fileValidatorRule = false;\r\n }\r\n });\r\n }\r\n\r\n handleFileSelect(files) {\r\n const file = files[0];\r\n this.file = file;\r\n const allowedFormats = ['.jpg', '.png', '.doc', '.pdf'];\r\n const fileExtension = file.name.substring(file.name.lastIndexOf('.')).toLowerCase();\r\n if (allowedFormats.includes(fileExtension)) {\r\n const reader = new FileReader();\r\n reader.onload = (event) => {\r\n let reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n this.documentFileName = file.name;\r\n reader.onload = () => {\r\n this.file = reader.result;\r\n };\r\n };\r\n reader.readAsDataURL(file);\r\n } else {\r\n // Handle invalid file format here (e.g., display an error message)\r\n this.uploadErrors = [{error: {message: ''}}];\r\n\r\n }\r\n }\r\n\r\n\r\n openFileDialog() {\r\n document.getElementById('attachments').click();\r\n }\r\n\r\n removeFile() {\r\n this.file = null;\r\n this.DocumentName = '';\r\n const fileInput = document.getElementById('attachments');\r\n if (fileInput) {\r\n fileInput.value = '';\r\n }\r\n }\r\n\r\n checkboxChanged(KRARepositorydata) {\r\n\r\n // Filter out the unchecked checkboxes\r\n const checkedItems = this.KRARepository.filter(item => item.isSelected);\r\n // Extract the IDs of the checked items\r\n\r\n const checkedIDs = checkedItems.map(item => item.KraCategoryQuestionID);\r\n // Log or send the checked IDs to the API\r\n return checkedIDs;\r\n // Call your API with checkedIDs here\r\n }\r\n\r\n KRARepositorySubmit(KRAPRRepositoryID) {\r\n const refreshEvent = new CustomEvent('refreshExemptData');\r\n const checkedIDs = this.checkboxChanged();\r\n event.preventDefault();\r\n this.KRARepositoryIds = checkedIDs;\r\n this.EmployeePerformanceReviewID = this.EmployeePerformanceReviewID;\r\n\r\n if (checkedIDs.length === 0) {\r\n this.checkBoxError = true;\r\n setTimeout(() => {\r\n this.checkBoxError = null\r\n }, 10000);\r\n // Show an error message or perform any necessary action\r\n console.error('No checkboxes are checked. Please select at least one checkbox.');\r\n\r\n }\r\n else {\r\n\r\n this.KraPerformanceReviewService.KRARepositoryPost(this.KRARepositoryIds, this.EmployeePerformanceReviewID)\r\n .then(data => {\r\n // this.controller.cancel();\r\n this.controller.ok(true);\r\n });\r\n }\r\n }\r\n\r\n cancel() {\r\n this.controller.cancel();\r\n }\r\n CreateNewKRASubmit() {\r\n event.preventDefault();\r\n this.controllerFactory.validate()\r\n .then(result => {\r\n if (result.valid) {\r\n\r\n if(this.bulkemployeePerformanceReviewID && this.bulkemployeePerformanceReviewID.length > 1){\r\n const data = {\r\n EmployeeID: this.EmpID,\r\n EmployeePerformanceKRAIDs: this.bulkemployeePerformanceReviewID,\r\n KRATitle: this.kratitle,\r\n CategoryID: this.selectedCategory,\r\n Criteria: this.Criteria,\r\n Weightage: this.Weightage,\r\n\r\n };\r\n console.log(data)\r\n if (data.Weightage > 100) {\r\n // Display an error message or perform any necessary action\r\n console.error(\"Weightage can't exceed more than 100.\");\r\n\r\n }\r\n else if (data.Criteria.length > 500) {\r\n console.error('erroe.length 500')\r\n }\r\n else {\r\n console.log(data);\r\n this.KraPerformanceReviewService.PostCreateKRA(data)\r\n .then(data => {\r\n // this.controller.cancel();\r\n this.controller.ok(true);\r\n });\r\n }\r\n // else {\r\n // this.KraPerformanceReviewService.validationEmployeeCategoryKRAExist(this.EmployeePerformanceKRAID, this.bulkemployeePerformanceReviewID, this.selectedCategory, this.kratitle).then(exit => {\r\n // if (exit === 1) {\r\n // this.kraTitleExit = true;\r\n // } else {\r\n // this.KraPerformanceReviewService.PostCreateKRA(data)\r\n // .then(data => {\r\n // // this.controller.cancel();\r\n // this.controller.ok(true);\r\n // });\r\n // }\r\n // });\r\n // }\r\n }\r\n else{\r\n const data = {\r\n EmployeeID: this.EmpID,\r\n EmployeePerformanceReviewID: this.EmployeePerformanceReviewID,\r\n KRATitle: this.kratitle,\r\n CategoryID: this.selectedCategory,\r\n Criteria: this.Criteria,\r\n Weightage: this.Weightage,\r\n\r\n };\r\n if (data.Weightage > 100) {\r\n // Display an error message or perform any necessary action\r\n console.error(\"Weightage can't exceed more than 100.\");\r\n }\r\n else if (data.Criteria.length > 500) {\r\n console.error('erroe.length 500')\r\n }\r\n else {\r\n this.KraPerformanceReviewService.validationEmployeeCategoryKRAExist(this.EmployeePerformanceKRAID, this.EmployeePerformanceReviewID, this.selectedCategory, this.kratitle).then(exit => {\r\n if (exit === 1) {\r\n this.kraTitleExit = true;\r\n } else {\r\n this.KraPerformanceReviewService.PostCreateKRA(data)\r\n .then(data => {\r\n // this.controller.cancel();\r\n this.controller.ok(true);\r\n });\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n }\r\n });\r\n }\r\n}\r\n\r\n","import {inject} from 'aurelia-framework';\r\nimport {Router} from 'aurelia-router';\r\nimport {JwtService} from '../../../../shared/services/jwtservice';\r\nimport {DialogController} from 'aurelia-dialog';\r\nimport {DialogService} from 'aurelia-dialog';\r\nimport {config} from \"../../../../shared/services/config\";\r\nimport {AddKraPopupModal} from \"../addkrapopup/addkrapopupmodal\";\r\nimport {KraPerformanceReviewService} from \"../../../../shared/services/kraperformancereviewservice\";\r\nimport {ValidationControllerFactory, ValidationRules} from \"aurelia-validation\";\r\nimport {AlertpopupComponent} from \"../../../alertpopup/alertpopupcomponent\";\r\n\r\n@inject(DialogController, JwtService, Router, ValidationControllerFactory, DialogService, KraPerformanceReviewService)\r\nexport class PerformanceReview {\r\n pageSize = config.kra_PazeSize;\r\n topicsPageSize = config.kra_PazeSize;\r\n ViewID = 2;\r\n isOpen = null;\r\n Successmessages = false;\r\n kraCategories = [];\r\n markascompleted = false;\r\n markascompletachivementpopup = false;\r\n activeTab = 'tab1';\r\n KraSuccessMessage = false;\r\n finalsubmitvalidation = false;\r\n openedIndex = null;\r\n kraTitleExit=false;\r\n EditkraSuccessMessage=false;\r\n publisheError=false;\r\n\r\n\r\n activateTab(tab) {\r\n this.activeTab = tab;\r\n }\r\n\r\n constructor(controller, JwtService, router, controllerFactory, DialogService, KraPerformanceReviewService) {\r\n this.controller = controller;\r\n this.jwtService = JwtService;\r\n this.empid = this.jwtService.getEmployeeId();\r\n this.dialogService = DialogService;\r\n this.KraPerformanceReview = KraPerformanceReviewService;\r\n this.controllerFactory = controllerFactory.createForCurrentScope();\r\n this.router = router;\r\n }\r\n\r\n activate(params) {\r\n // Access the value from the URL query parameter\r\n this.employeePerformanceReviewID = params.EmployeePerformanceReviewID;\r\n // console.log(this.employeePerformanceReviewID)\r\n this.EmployeeID=params.EmployeeID;\r\n this.ReviewTypeID=params.ReviewTypeID;\r\n this.assignedBulkData = params.bulkData;\r\n }\r\n\r\n attached() {\r\n this.KraPerformanceReview.GetEmployeePerformanceKRADetails(this.employeePerformanceReviewID,this.ReviewTypeID,this.EmployeeID)\r\n .then(data => {\r\n this.employeeAssignedKraDetails = data.CategoryList;\r\n this.employeeModel=data.employeeModel;\r\n this.krasamedata= data.CategoryList.EmployeePerformanceKRAList;\r\n this.weightages = data.CategoryList.map(item => item.TotalWeightage);\r\n })\r\n }\r\n\r\n EditKra(employeeperformance) {\r\n employeeperformance.isEditing = true;\r\n this.oldemployeeperformancedata = {...employeeperformance};\r\n }\r\n\r\n\r\n cancel(employeeperformance) {\r\n\r\n employeeperformance.isEditing = false;\r\n this.Weightageerror = \"\";\r\n this.isrequiredMessage = \"\";\r\n }\r\n\r\n deleteBulkAssignEmployee(bulkdata) {\r\n this.finalsubmitvalidation = false;\r\n const AssignEmployeeID = bulkdata.EmployeePerformanceReviewID;\r\n const EmployeePerformanceReviewIDs = this.assignedBulkData.map(item => item.EmployeePerformanceReviewID);\r\n\r\n\r\n // Check if AssignEmployeeID is present in EmployeePerformanceReviewIDs\r\n const isAssignEmployeeIDPresent = EmployeePerformanceReviewIDs.includes(AssignEmployeeID);\r\n\r\n // Get all EmployeePerformanceReviewIDs except AssignEmployeeID\r\n const EmployeePerformanceReviewIDsExceptAssign = EmployeePerformanceReviewIDs.filter(id => id !== AssignEmployeeID);\r\n const deletebulkids = {\r\n EmployeeID: this.empid,\r\n EmployeePerformanceReviewID: AssignEmployeeID\r\n\r\n };\r\n this.KraPerformanceReview.DeleteBulkAssignData(deletebulkids).then(data => {\r\n this.DeletebulkResponce = data;\r\n\r\n\r\n if (isAssignEmployeeIDPresent) {\r\n // If AssignEmployeeID is present, post the remaining EmployeePerformanceReviewIDs\r\n this.KraPerformanceReview.PostBulkAssignData(EmployeePerformanceReviewIDsExceptAssign).then(data => {\r\n // this.bulkData = data;\r\n // console.log(this.bulkData)\r\n this.assignedBulkData = data;\r\n });\r\n }\r\n\r\n });\r\n }\r\n\r\n SaveEditedKra(CategoryID, KRATitle, Criteria, Weightage, EmployeePerformanceKRAID, EmployeePerformanceReviewID) {\r\n this.finalsubmitvalidation = false;\r\n this.controllerFactory.validate()\r\n .then(result => {\r\n if (result.valid) {\r\n const data = {\r\n EmployeeID: this.empid,\r\n CategoryID: CategoryID,\r\n KRATitle: KRATitle,\r\n Criteria: Criteria,\r\n Weightage: Weightage,\r\n EmployeePerformanceKRAID: EmployeePerformanceKRAID,\r\n EmployeePerformanceReviewID: EmployeePerformanceReviewID\r\n };\r\n if (data.KRATitle === \"\" || data.Criteria === \"\" || data.Weightage === \"\") {\r\n this.KRATitleValidtion = \"Field cannot be empty\";\r\n setTimeout(() => {\r\n this.isrequiredMessage = null\r\n }, 5000);\r\n const errorElement = document.querySelector(\".scrolltoerrorsuccess\");\r\n if (errorElement) {\r\n errorElement.scrollIntoView({behavior: \"auto\", block: \"start\", inline: \"nearest\"});\r\n window.scrollBy(0, -200);\r\n }\r\n\r\n }\r\n else if (data.Weightage > 100) {\r\n console.error(\"Weightage can't exceed more than 100\")\r\n }\r\n else if (data.Criteria.length > 500)\r\n {\r\n console.error('erroe.length 500')\r\n }\r\n else {\r\n if (this.oldemployeeperformancedata.KRATitle === data.KRATitle && this.oldemployeeperformancedata.Criteria === data.Criteria && this.oldemployeeperformancedata.Weightage === data.Weightage) {\r\n this.isrequiredMessage = \"\";\r\n this.Weightageerror = \"\";\r\n this.EditkraSuccessMessage=true;\r\n setTimeout(() => {\r\n this.EditkraSuccessMessage = null\r\n }, 5000);\r\n const errorElement = document.querySelector(\".scrolltoerrorsuccess\");\r\n if (errorElement) {\r\n errorElement.scrollIntoView({behavior: \"auto\", block: \"start\", inline: \"nearest\"});\r\n window.scrollBy(0, -200);\r\n }\r\n this.attached();\r\n\r\n\r\n } else {\r\n this.KraPerformanceReview.validationEmployeeCategoryKRAExist(data.EmployeePerformanceKRAID,data.EmployeePerformanceReviewID,data.CategoryID,data.KRATitle).then(exit=>{\r\n\r\n if (exit === 1) {\r\n this.kraTitleExit=true;\r\n setTimeout(() => {\r\n this.kraTitleExit = null\r\n }, 5000);\r\n\r\n const errorElement = document.querySelector(\".scrolltoerrorsuccess\");\r\n if (errorElement) {\r\n errorElement.scrollIntoView({behavior: \"auto\", block: \"start\", inline: \"nearest\"});\r\n window.scrollBy(0, -200);\r\n }\r\n }else {\r\n this.KraPerformanceReview.EditingPostCreateKRA(data).then(data => {\r\n this.attached();\r\n this.EditkraSuccessMessage=true;\r\n setTimeout(() => {\r\n this.EditkraSuccessMessage = null\r\n }, 5000);\r\n this.isrequiredMessage = \"\";\r\n this.Weightageerror = \"\";\r\n\r\n });\r\n }\r\n })\r\n }\r\n }}\r\n });\r\n }\r\n\r\n performanceClicks(event) {\r\n event.preventDefault();\r\n const parentDiv = event.target.closest('.parent-div');\r\n\r\n // Close all open categories except the clicked one\r\n const allOpenCategories = document.querySelectorAll('.parent-div.performance-open');\r\n allOpenCategories.forEach(openCategory => {\r\n if (openCategory !== parentDiv) {\r\n openCategory.classList.remove('performance-open');\r\n }\r\n });\r\n\r\n // Toggle the clicked category\r\n if (parentDiv) {\r\n parentDiv.classList.toggle('performance-open');\r\n }\r\n }\r\n\r\n performanceClicks(event, index) {\r\n event.preventDefault();\r\n if (this.openedIndex === index) {\r\n this.openedIndex = -1; // Close the currently open array\r\n } else {\r\n this.openedIndex = index; // Open the clicked array\r\n }\r\n }\r\n\r\n AddKraDialog() {\r\n this.finalsubmitvalidation = false;\r\n\r\n const employeePerformanceReviewID = this.employeePerformanceReviewID;\r\n\r\n if(employeePerformanceReviewID === undefined){\r\n this.EmployeePerformanceReviewIDs = this.assignedBulkData.map(item => item.EmployeePerformanceReviewID);\r\n const data={ employeePerformanceReviewID : this.EmployeePerformanceReviewIDs}\r\n this.dialogService.open({\r\n viewModel: AddKraPopupModal,\r\n model: data\r\n }).whenClosed((feedback) => {\r\n if (!feedback.wasCancelled) {\r\n this.attached();\r\n this.KraSuccessMessage = true;\r\n setTimeout(() => {\r\n this.KraSuccessMessage = null\r\n }, 5000);\r\n }\r\n })\r\n }\r\n else{\r\n const dataModel={\r\n EmployeePerformanceReviewID : this.employeePerformanceReviewID,\r\n ReviewTypeID:this.ReviewTypeID,\r\n EmployeeID:this.EmployeeID\r\n };\r\n console.log(dataModel)\r\n this.dialogService.open({\r\n viewModel: AddKraPopupModal,\r\n model: dataModel\r\n }).whenClosed((feedback) => {\r\n if (!feedback.wasCancelled) {\r\n this.attached();\r\n this.KraSuccessMessage = true;\r\n setTimeout(() => {\r\n this.KraSuccessMessage = null\r\n }, 5000);\r\n }\r\n })\r\n }\r\n\r\n }\r\n\r\n /* markAsComplete(event, EmployeeGoalID, MarkAsCompletedIND, category) {\r\n const result = this.dialogService.open({\r\n viewModel: Markascompletemodel,\r\n model: '',\r\n }).whenClosed(response => {\r\n if (response.wasCancelled) {\r\n this.markascompleted = false;\r\n return;\r\n } else {\r\n this.markascompleted = true;\r\n this.markascompletachivementpopup = true;\r\n const checkbox = document.querySelector(`input[name=\"achievement_${MarkAsCompletedIND == true}\"]`);\r\n if (checkbox) {\r\n checkbox.checked = true;\r\n const markascompletedata = {\r\n EmployeeGoalID: EmployeeGoalID,\r\n EmployeeID: this.empid\r\n };\r\n this.performaceService.MarkasCompletedKraCategories(markascompletedata)\r\n .then(data => {\r\n this.performaceService.KraCategories(this.empid, this.PeriodID, this.ReviewTypeID, this.ViewID)\r\n .then(data => {\r\n this.kraCategories = data.EmployeeCategoryList;\r\n const result = this.kraCategories?.find(item => item.EmployeeCategoryID === category.EmployeeCategoryID);\r\n const defaultCategory = result;\r\n this.toggleDisplay(defaultCategory);\r\n });\r\n });\r\n }\r\n }\r\n })\r\n }*/\r\n\r\n async DeleteKra(EmployeePerformanceKRAID) {\r\n this.finalsubmitvalidation = false;\r\n const result = await this.dialogService.open({\r\n viewModel: AlertpopupComponent,\r\n model: \"\",\r\n }).whenClosed(response => response);\r\n if (result.wasCancelled) {\r\n return;\r\n }\r\n const data = {\r\n EmployeeID: this.empid,\r\n EmployeePerformanceKRAID: EmployeePerformanceKRAID,\r\n };\r\n await this.KraPerformanceReview.DeleteEmployeePerformanceKRA(data)\r\n .then(data => {\r\n\r\n this.attached();\r\n this.DeletekraSuccessMessage=true;\r\n setTimeout(() => {\r\n this.DeletekraSuccessMessage = null\r\n }, 5000);\r\n this.isrequiredMessage = \"\";\r\n this.Weightageerror = \"\";\r\n });\r\n}\r\n\r\n openFileDialog() {\r\n document.getElementById('attachments').click();\r\n }\r\n\r\n handleFileSelect(files) {\r\n const file = files[0];\r\n const maxSize = 2.5 * 1024 * 1024;\r\n if (file.size > maxSize) {\r\n this.fileMessage = 'File size should be less than 2.5 MB.';\r\n setTimeout(() => {\r\n this.fileMessage = null;\r\n }, 4000);\r\n this.removeFile();\r\n return;\r\n }\r\n else if (file.size <= maxSize) {\r\n this.files = file;\r\n let reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n this.DocumentNames = file.name;\r\n reader.onload = () => {\r\n this.files = reader.result;\r\n };\r\n }\r\n }\r\n\r\n removeFile() {\r\n this.files = null;\r\n this.DocumentNames = '';\r\n const fileInput = document.getElementById('attachments');\r\n if (fileInput) {\r\n fileInput.value = '';\r\n }\r\n }\r\n\r\n toggleDisplay(category) {\r\n this.kraCategories.forEach(cat => {\r\n if (cat !== category) {\r\n cat.showDiv = false;\r\n }\r\n });\r\n category.showDiv = true;\r\n }\r\n openCategory(index) {\r\n this.isOpen = index;\r\n }\r\n\r\n BackPage() {\r\n this.router.navigateToRoute('KRAPerformanceReview/employeeperformancelist');\r\n }\r\n Publishing() {\r\n const finaldata = {\r\n EmployeePerformanceReviewID: this.employeePerformanceReviewID,\r\n EmployeeID: this.empid,\r\n };\r\n\r\n const total = this.weightages.reduce((acc, curr) => acc + curr, 0);\r\n if (total === 100){\r\n this.KraPerformanceReview.finalkrasubmit(finaldata).then(data => {\r\n\r\n });\r\n const successMessage = \"KRA added successfully\";\r\n // const queryString = new URLSearchParams({ message: successMessage }).toString();\r\n // const PerformacelistpageURL = `/#/KRAPerformanceReview/employeeperformancelist?${queryString}`;\r\n // window.location.href = PerformacelistpageURL;\r\n this.router.navigateToRoute('KRAPerformanceReview/employeeperformancelist',{successMessage});\r\n\r\n }else {\r\n const errorElement = document.querySelector(\".scrolltoerrorsuccess\");\r\n if (errorElement) {\r\n errorElement.scrollIntoView({behavior: \"auto\", block: \"start\", inline: \"nearest\"});\r\n window.scrollBy(0, -200);\r\n }\r\n this.finalsubmitvalidation = true;\r\n }\r\n }\r\n\r\n}\r\n","import {inject, bindingMode, bindable} from 'aurelia-framework';\r\nimport flatpickr from \"flatpickr\";\r\nimport {JwtService} from '../../../shared/services/jwtservice';\r\nimport {DialogController} from 'aurelia-dialog';\r\nimport {DialogService} from 'aurelia-dialog';\r\nimport * as XLSX from 'xlsx';\r\nimport {config} from '../../../shared/services/config';\r\nimport {constants} from '../../../shared/services/constants';\r\nimport Scrollbar from 'smooth-scrollbar';\r\nimport {LoginService} from \"../../../shared/services/loginservice\";\r\nimport {Router} from 'aurelia-router';\r\nimport {LeavemanagementService} from \"../../../shared/services/leavemanagementservice\";\r\nimport {ExemptemployeeModel} from \"../employeeperformancelist/ExemptemployeeModel/exemptemployeepopupmodal\"\r\nimport {KraPerformanceReviewService} from \"../../../shared/services/kraperformancereviewservice\";\r\n\r\n@inject(DialogController, JwtService, DialogService, KraPerformanceReviewService, Router, LoginService, LeavemanagementService)\r\nexport class Employeeperformancelist {\r\n\r\n pageSize = config.grid_PazeSize;\r\n searchTerm = '';\r\n search = '';\r\n FromDate = null;\r\n ToDate = null;\r\n isLoading = false;\r\n FavoritesExist = false;\r\n Successmessages = false;\r\n selectedDepartments = [];\r\n selectedPositions = [];\r\n selectedPosition = null;\r\n selectedEmployees = [];\r\n selectedEmployeePostion = [];\r\n selectAllChecked = false;\r\n params = null;\r\n showMessage=false;\r\n selectedStatus = 'PIN';\r\n ExemptSuccessMessage = false;\r\n RevertExemptSuccessMessage = false;\r\n\r\n sitemapId = constants.employeeperformancelistsitemapid;\r\n statusOptions = [\r\n {label: 'All', value: 'All', checked: false},\r\n {label: 'Published', value: 'INT', checked: false},\r\n {label: 'Pending Assignment', value: 'PIN', checked: true},\r\n {label: 'Exempted', value: 'CMP', checked: false},\r\n ];\r\n\r\n constructor(controller, JwtService, DialogService, KraPerformanceReviewService, router, loginservice, LeavemanagementService,) {\r\n this.controller = controller;\r\n this.jwtService = JwtService;\r\n this.dialogService = DialogService;\r\n this.empid = this.jwtService.getEmployeeId();\r\n this.router = router;\r\n this.loginservice = loginservice;\r\n this.leavemanagementService = LeavemanagementService;\r\n this.KraPerformanceReview = KraPerformanceReviewService;\r\n\r\n }\r\n\r\n activate(params) {\r\n if (params.successMessage === \"KRA added successfully\") {\r\n this.showMessage = true;\r\n // Automatically hide the message after 5 seconds\r\n setTimeout(() => {\r\n this.showMessage = false;\r\n }, 5000);\r\n // Rest of your logic\r\n } else {\r\n this.showMessage = false;\r\n // Rest of your logic\r\n }\r\n // Check the 'Pending Assignment' status checkbox by default\r\n this.statusOptions.find(option => option.label === 'Pending Assignment').checked = true;\r\n\r\n // Filter data based on the selected checkboxes\r\n this.filterData();\r\n }\r\n\r\n \r\n async attached() {\r\n this.leavemanagementService.GetPersonFavoriteItems(this.empid, this.sitemapId)\r\n .then(data => {\r\n this.FavoritesExist = data;\r\n });\r\n this.addToRecentItems();\r\n\r\n const windowWidth = window.innerWidth;\r\n if (windowWidth <= 1280) {\r\n Scrollbar.init(document.querySelector('.disable-desktop-scroll'));\r\n }\r\n this.KraPerformanceReview.GetEmployeePerformance(this.empid).then(data => {\r\n this.employeeperformancelist = data.EmployeePerformanceList;\r\n this.departments = data.DepartmentList;\r\n this.positionList = data.PositionList;\r\n this.reviewtypelist = data.ParameterTypeList;\r\n const mappedData = data.EmployeePerformanceList?.map(item => {\r\n this.mappedParameterTypeList = Object.entries(item.ParameterTypeList).map(([key, value]) => ({\r\n id: key,\r\n type: value\r\n }));\r\n\r\n });\r\n });\r\n const selectedStatusList = this.statusOptions\r\n .filter(status => status.checked)\r\n .map(status => status.value);\r\n this.filterData();\r\n\r\n }\r\n\r\n FetchExemptData = () => {\r\n this.KraPerformanceReview.GetEmployeePerformance(this.empid)\r\n .then(data => {\r\n this.employeeperformancelist = data.EmployeePerformanceList;\r\n\r\n this.sucess = \"Exempt added successfully\";\r\n this.exemptsucces = true;\r\n setTimeout(() => {\r\n this.sucess = null;\r\n }, 4000)\r\n });\r\n };\r\n active() {\r\n\r\n const searchButton = document.getElementById('search-button');\r\n searchButton.addEventListener('click', handleSearch);\r\n }\r\n addToFavourites() {\r\n this.leavemanagementService.AddToFavourites(this.empid, this.sitemapId).then(data => {\r\n window.location.reload();\r\n });\r\n }\r\n addToRecentItems() {\r\n this.leavemanagementService.AddToRecentItems(this.empid, this.sitemapId).then(data => {\r\n\r\n });\r\n }\r\n FilterReset() {\r\n\r\n this.KraPerformanceReview.GetEmployeePerformance(this.empid).then(data => {\r\n this.employeeperformancelist = data.EmployeePerformanceList;\r\n this.departments = data.DepartmentList;\r\n this.positionList = data.PositionList;\r\n this.reviewtypelist = data.ParameterTypeList;\r\n const mappedData = data.EmployeePerformanceList?.map(item => {\r\n this.mappedParameterTypeList = Object.entries(item.ParameterTypeList).map(([key, value]) => ({\r\n id: key,\r\n type: value\r\n }));\r\n });\r\n });\r\n this.statusOptions.find(option => option.label === 'Pending Assignment').checked = true;\r\n // const selectedStatusList = this.statusOptions\r\n // .filter(status => status.checked)\r\n // .map(status => status.value);\r\n this.filterData();\r\n }\r\n ExemptEmployeeDialog(name, value,ReviewTypeID,EmployeeID) {\r\n\r\n if (name === \"Exempt\" || name ===\"Revert Exempt\") {\r\n const modelData = {\r\n name:name,\r\n EmployeePerformanceReviewID: value,\r\n };\r\n this.dialogService.open({viewModel: ExemptemployeeModel, model: modelData})\r\n .whenClosed((feedback) => {\r\n\r\n if (!feedback.wasCancelled) {\r\n if (feedback.output == 'Revert Exempt'){\r\n this.attached();\r\n this.RevertExemptSuccessMessage = true;\r\n setTimeout(() => {\r\n this.RevertExemptSuccessMessage = null\r\n }, 5000);\r\n\r\n } else {\r\n this.attached();\r\n this.ExemptSuccessMessage = true;\r\n setTimeout(() => {\r\n this.ExemptSuccessMessage = null\r\n }, 5000);\r\n }\r\n }\r\n })\r\n\r\n }\r\n else if (name === \"Assign\") {\r\n const modelData = {\r\n EmployeePerformanceReviewID: value,\r\n };\r\n const queryString = new URLSearchParams(modelData).toString();\r\n const AssignperformancereviewURL = `/#/MyKRADetails/AssignKra?${queryString}`;\r\n // window.location.href = AssignperformancereviewURL;\r\n this.router.navigateToRoute('AssignKra', {EmployeePerformanceReviewID: value,ReviewTypeID:ReviewTypeID,EmployeeID:EmployeeID });\r\n }\r\n }\r\n ViewAssginedKraDetails(name,value){\r\n if (name === \"View\") {\r\n const modelData = {\r\n EmployeePerformanceReviewID: value,\r\n };\r\n // const queryString = new URLSearchParams(modelData).toString();\r\n // const ViewAssignperformancereviewURL = `/#/MyKRADetails/ViewAssignKra?${queryString}`;\r\n // window.location.href = ViewAssignperformancereviewURL;\r\n this.router.navigateToRoute('viewAssignKra',{EmployeePerformanceReviewID: value})\r\n }else{\r\n const modelData = {\r\n name:name,\r\n EmployeePerformanceReviewID: value,\r\n };\r\n this.dialogService.open({viewModel: ExemptemployeeModel, model: modelData})\r\n }\r\n }\r\n exportData() {\r\n const data = this.employeeperformancelist;\r\n\r\n const filename = 'employeeperformancelist';\r\n this.exportToExcel(data, filename);\r\n }\r\n exportToExcel(data, filename) {\r\n const headers = {\r\n EmployeeName:'Employee',\r\n DepartmentName:'Department',\r\n PositionLevelName:'Designation',\r\n ReviewPeriod:'Review period',\r\n ReviewType: 'Review type',\r\n Status: 'Status',\r\n };\r\n const filteredData = data.map(empPerformance => {\r\n return {\r\n\r\n EmployeeName:empPerformance.EmployeeName,\r\n DepartmentName:empPerformance.DepartmentName,\r\n PositionLevelName:empPerformance.PositionLevelName,\r\n ReviewPeriod:empPerformance.ReviewPeriod,\r\n ReviewType:empPerformance.ReviewType,\r\n Status: empPerformance.StatusText,\r\n\r\n };\r\n });\r\n const headerRow = Object.values(headers);\r\n const dataRows = filteredData.map(Performance => Object.values(Performance));\r\n const worksheet = XLSX.utils.aoa_to_sheet([headerRow, ...dataRows]);\r\n const workbook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet 1');\r\n XLSX.writeFile(workbook, `${filename}.xlsx`);\r\n }\r\n clearSelectedDepartments() {\r\n this.selectedDepartments = [];\r\n }\r\n addActionClick(event) {\r\n // Find the dropdown relative to the clicked button\r\n const dropdown = event.target.closest('.relative').querySelector('.dropdown');\r\n // Toggle the visibility of the dropdown\r\n dropdown.classList.toggle('hidden');\r\n\r\n // Add event listener to close dropdown when clicking outside of it\r\n const handleOutsideClick = (event) => {\r\n if (!event.target.closest('.relative')) {\r\n dropdown.classList.add('hidden');\r\n document.removeEventListener('click', handleOutsideClick);\r\n }\r\n };\r\n\r\n // Add or remove event listener based on dropdown visibility\r\n if (!dropdown.classList.contains('hidden')) {\r\n document.addEventListener('click', handleOutsideClick);\r\n } else {\r\n document.removeEventListener('click', handleOutsideClick);\r\n }\r\n }\r\n\r\n\r\n filterClick() {\r\n event.preventDefault();\r\n const clickedDiv = event.target.parentNode;\r\n clickedDiv.classList.toggle(\"filter-open\");\r\n // Remove 'filter-open' class from other divs\r\n const divs = document.querySelectorAll(\".filter-open\");\r\n divs.forEach((div) => {\r\n if (div !== clickedDiv) {\r\n div.classList.remove(\"filter-open\");\r\n }\r\n });\r\n const handleOutsideClick = (event) => {\r\n if (!clickedDiv.contains(event.target)) {\r\n divs.forEach((div) => {\r\n div.classList.remove(\"filter-open\");\r\n });\r\n document.removeEventListener(\"click\", handleOutsideClick);\r\n }\r\n };\r\n\r\n if (clickedDiv.classList.contains(\"filter-open\")) {\r\n document.addEventListener(\"click\", handleOutsideClick);\r\n } else {\r\n document.removeEventListener(\"click\", handleOutsideClick);\r\n }\r\n }\r\n\r\n handleCheckboxChange(event, status) {\r\n // Update the checked status of the clicked option\r\n status.checked = event.target.checked;\r\n\r\n if (status.label !== 'All') {\r\n // Check if any checkbox other than 'All' is unchecked\r\n const anyUnchecked = this.statusOptions.slice(1).some(option => !option.checked);\r\n // If any checkbox is unchecked, uncheck the 'All' checkbox\r\n this.statusOptions[0].checked = !anyUnchecked;\r\n\r\n } else {\r\n // If 'All' is selected, update all other options accordingly\r\n this.statusOptions.forEach((option) => (option.checked = status.checked));\r\n }\r\n\r\n // Filter data based on the selected options\r\n this.filterData();\r\n }\r\n selectOption(option) {\r\n this.selectedOption = option;\r\n this.isDropdownOpen = false;\r\n }\r\n selectAllChanged(event) {\r\n const isChecked = this.statusOptions[0].checked;\r\n this.statusOptions.forEach((status, index) => {\r\n if (index !== 0) {\r\n status.checked = isChecked;\r\n }\r\n });\r\n }\r\n\r\n removeFilter(Allstatus,status) {\r\n if (status.label === 'All') {\r\n this.statusOptions.forEach(option => {\r\n option.checked = false;\r\n });\r\n } else {\r\n status.checked = false;\r\n }\r\n\r\n }\r\n get selectedStatuses() {\r\n\r\n return this.statusOptions\r\n .filter(status => status.checked);\r\n\r\n }\r\n\r\n handleCheckboxDepartmentChange(event, department) {\r\n const departmentID = department.DepartmentID;\r\n if (event.target.checked) {\r\n this.selectedDepartments.push(departmentID);\r\n } else {\r\n const index = this.selectedDepartments.indexOf(departmentID);\r\n if (index !== -1) {\r\n this.selectedDepartments.splice(index, 1);\r\n }\r\n }\r\n\r\n if (this.selectedPositions.length === 0) {\r\n this.selectedPositions = [\"\"];\r\n }\r\n if (this.selectedOption === undefined) {\r\n this.selectedOption = \"\";\r\n }\r\n\r\n this.KraPerformanceReview.GetEmployeePerformanceFilterData(this.empid, this.selectedDepartments, this.selectedPositions, this.selectedOption)\r\n .then(data => {\r\n this.employeeperformancelist = data.EmployeePerformanceList;\r\n\r\n });\r\n }\r\n\r\n removeEmptyStrings(array) {\r\n return array.filter(item => typeof item === 'string' && item.trim() !== \"\");\r\n }\r\n\r\n handleCheckboxPositionChange(event, position) {\r\n const positionID = position.PositionID;\r\n if (event.target.checked) {\r\n this.selectedPositions.push(positionID);\r\n } else {\r\n const index = this.selectedPositions.indexOf(positionID);\r\n if (index !== -1) {\r\n this.selectedPositions.splice(index, 1);\r\n }\r\n }\r\n\r\n if (this.selectedDepartments.length === 0) {\r\n this.selectedDepartments = [\"\"];\r\n }\r\n if (this.selectedOption === undefined) {\r\n this.selectedOption = \"\";\r\n }\r\n this.KraPerformanceReview.GetEmployeePerformanceFilterData(this.empid, this.selectedDepartments, this.selectedPositions, this.selectedOption)\r\n .then(data => {\r\n this.employeeperformancelist = data.EmployeePerformanceList;\r\n\r\n });\r\n }\r\n\r\n handleCheckboxChangeReviewType(event, item) {\r\n const itemId = item.id;\r\n\r\n // Initialize this.selectedOption as an empty array if it's not already\r\n if (!Array.isArray(this.selectedOption)) {\r\n this.selectedOption = [];\r\n }\r\n\r\n const index = this.selectedOption.indexOf(itemId);\r\n\r\n if (event.target.checked) {\r\n if (index === -1) {\r\n this.selectedOption.push(itemId);\r\n }\r\n } else {\r\n if (index !== -1) {\r\n this.selectedOption.splice(index, 1);\r\n }\r\n }\r\n\r\n if (this.selectedDepartments.length === 0) {\r\n this.selectedDepartments = [\"\"];\r\n }\r\n if (this.selectedPositions.length === 0) {\r\n this.selectedPositions = [\"\"];\r\n }\r\n\r\n this.KraPerformanceReview.GetEmployeePerformanceFilterData(this.empid, this.selectedDepartments, this.selectedPositions, this.selectedOption)\r\n .then(data => {\r\n this.employeeperformancelist = data.EmployeePerformanceList;\r\n });\r\n }\r\n filterData() {\r\n this.KraPerformanceReview.GetEmployeePerformance(this.empid).then(data => {\r\n this.fullemployeeperformancelist = data.EmployeePerformanceList;\r\n\r\n if (!this.fullemployeeperformancelist) {\r\n this.employeeperformancelist = []; // Handle the case where data is not available\r\n return;\r\n }\r\n\r\n const selectedStatusLabels = this.statusOptions.slice(1) // Exclude 'All' checkbox\r\n .filter(option => option.checked)\r\n .map(option => option.label);\r\n if (selectedStatusLabels.length === 0) {\r\n // If no checkboxes are selected (excluding 'All'), show all data\r\n this.employeeperformancelist = this.fullemployeeperformancelist;\r\n } else {\r\n // Filter data based on selected checkboxes\r\n this.employeeperformancelist = this.fullemployeeperformancelist.filter(employee => {\r\n // Check if any of the selected status labels exists in the employee's StatusText\r\n return selectedStatusLabels.some(label => employee.StatusText.includes(label));\r\n });\r\n }\r\n });\r\n }\r\n\r\n selectEmployee(event, employeeData) {\r\n const employeeReviewID = employeeData.EmployeePerformanceReviewID;\r\n const employeePostionID = employeeData.PositionID;\r\n\r\n if (event.target.checked) {\r\n // Add the selected employeeData to your selectedEmployees or perform any other necessary operation\r\n this.selectedEmployees.push(employeeReviewID);\r\n this.selectedEmployeePostion.push(employeePostionID);\r\n\r\n } else {\r\n // Remove the deselected employeeData from your selectedEmployees or perform any other necessary operation\r\n const index = this.selectedEmployees.indexOf(employeeReviewID);\r\n const indexs = this.selectedEmployeePostion.indexOf(employeePostionID);\r\n if (index !== -1) {\r\n this.selectedEmployees.splice(index, 1);\r\n }\r\n if (indexs !== -1) {\r\n\r\n this.selectedEmployeePostion.splice(indexs, 1);\r\n }\r\n }\r\n // Check if there are already selected employees\r\n if (this.selectedEmployees.length > 0) {\r\n // Get the PositionLevelName of the first selected employee\r\n const firstSelectedEmployee = this.$EmployeeList.find(employee => this.selectedEmployees.includes(employee.EmployeePerformanceReviewID));\r\n const firstSelectedPositionLevelID = firstSelectedEmployee ? firstSelectedEmployee.PositionID : null;\r\n // Compare the PositionLevelName of the current employee with the first selected employee\r\n if (employeeData.PositionID !== firstSelectedPositionLevelID) {\r\n // If PositionLevelName is different, show validation message\r\n this.designationError = \"Select only employees with the same designation\";\r\n\r\n }else{\r\n this.designationError = \"\";\r\n\r\n }\r\n }\r\n\r\n }\r\n\r\n selectAll(event) {\r\n this.designationError = \"\";\r\n const isChecked = event.target.checked;\r\n\r\n // Update the isSelected property of all employees based on isChecked\r\n this.$EmployeeList.forEach(employee => {\r\n if (employee.StatusText !== 'Exempted' && employee.StatusText !== 'Published') {\r\n employee.isSelected = isChecked;\r\n }\r\n });\r\n\r\n // Extract EmployeePerformanceReviewID of selected employees\r\n this.selectedEmployees = [];\r\n this.$EmployeeList.forEach(employee => {\r\n if (employee.isSelected) {\r\n this.selectedEmployees.push(employee.EmployeePerformanceReviewID);\r\n }\r\n });\r\n }\r\n\r\n\r\n BulkSubmit() {\r\n const EmployeePerformanceReviewIDs = this.selectedEmployees;\r\n //const containsSameValues = this.selectedEmployeePostion.every((element, index, array) => element === array[0]);\r\n const containsSameValues = this.selectedEmployeePostion.length > 0 && this.selectedEmployeePostion.every((element, index, array) => element === array[0]);\r\n if (!containsSameValues) {\r\n // If validation fails, display a message or handle it accordingly\r\n this.designationError = \"Select only employees with the same designation\";\r\n // You can also trigger Aurelia validation explicitly if you want to display the validation message in your view\r\n }\r\n else{\r\n this.designationError = \"\";\r\n if(EmployeePerformanceReviewIDs.length < 2 ){\r\n this.bulkvalidation = \"Please select atleast two employees\"\r\n }\r\n else{\r\n this.bulkvalidation = \"\";\r\n this.designationError = \"\";\r\n\r\n if (EmployeePerformanceReviewIDs.length !== 0) {\r\n this.KraPerformanceReview.PostBulkAssignData(EmployeePerformanceReviewIDs).then(data => {\r\n this.bulkData = data;\r\n if (this.bulkData) {\r\n // this.router.navigateToRoute('#/MyKRADetails/AssignKra');\r\n this.router.navigateToRoute('AssignKra', {bulkData: this.bulkData});\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n\r\n }\r\n}","// Module\nvar code = \"\\r\\n\";\n// Exports\nexport default code;","// Imports\nimport ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___ from \"../../../../../node_modules/html-loader/dist/runtime/getUrl.js\";\nvar ___HTML_LOADER_IMPORT_0___ = new URL(\"../../../../images/performance-icon.svg\", import.meta.url);\nvar ___HTML_LOADER_IMPORT_1___ = new URL(\"../../../../images/key.svg\", import.meta.url);\n// Module\nvar ___HTML_LOADER_REPLACEMENT_0___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_0___);\nvar ___HTML_LOADER_REPLACEMENT_1___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_1___);\nvar code = \"\\r\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\r\\n\";\n// Exports\nexport default code;","// Imports\nimport ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___ from \"../../../../../node_modules/html-loader/dist/runtime/getUrl.js\";\nvar ___HTML_LOADER_IMPORT_0___ = new URL(\"../../../../images/loader.gif\", import.meta.url);\n// Module\nvar ___HTML_LOADER_REPLACEMENT_0___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_0___);\nvar code = \"\\r\\n\";\n// Exports\nexport default code;","// Imports\nimport ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___ from \"../../../../../node_modules/html-loader/dist/runtime/getUrl.js\";\nvar ___HTML_LOADER_IMPORT_0___ = new URL(\"../../../../images/performance-icon.svg\", import.meta.url);\nvar ___HTML_LOADER_IMPORT_1___ = new URL(\"../../../../images/key.svg\", import.meta.url);\nvar ___HTML_LOADER_IMPORT_2___ = new URL(\"../../../../images/edit.svg\", import.meta.url);\nvar ___HTML_LOADER_IMPORT_3___ = new URL(\"../../../../images/x-square.svg\", import.meta.url);\n// Module\nvar ___HTML_LOADER_REPLACEMENT_0___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_0___);\nvar ___HTML_LOADER_REPLACEMENT_1___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_1___);\nvar ___HTML_LOADER_REPLACEMENT_2___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_2___);\nvar ___HTML_LOADER_REPLACEMENT_3___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_3___);\nvar code = \"\\r\\n\";\n// Exports\nexport default code;","// Imports\nimport ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___ from \"../../../../node_modules/html-loader/dist/runtime/getUrl.js\";\nvar ___HTML_LOADER_IMPORT_0___ = new URL(\"../../../images/performance-icon.svg\", import.meta.url);\nvar ___HTML_LOADER_IMPORT_1___ = new URL(\"../../../images/favourite.svg\", import.meta.url);\nvar ___HTML_LOADER_IMPORT_2___ = new URL(\"../../../images/loader.gif\", import.meta.url);\nvar ___HTML_LOADER_IMPORT_3___ = new URL(\"../../../images/performance-check.svg\", import.meta.url);\nvar ___HTML_LOADER_IMPORT_4___ = new URL(\"../../../images/plus-square-green.svg\", import.meta.url);\nvar ___HTML_LOADER_IMPORT_5___ = new URL(\"../../../images/preview-open.svg\", import.meta.url);\n// Module\nvar ___HTML_LOADER_REPLACEMENT_0___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_0___);\nvar ___HTML_LOADER_REPLACEMENT_1___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_1___);\nvar ___HTML_LOADER_REPLACEMENT_2___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_2___);\nvar ___HTML_LOADER_REPLACEMENT_3___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_3___);\nvar ___HTML_LOADER_REPLACEMENT_4___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_4___);\nvar ___HTML_LOADER_REPLACEMENT_5___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_5___);\nvar code = \"\\r\\n\\r\\n\";\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}