{"version":3,"file":"app-aaf001a5.d152cf98c45d962fa693.bundle.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAGA;AAAA;AAYA;AACA;AAEA;AAAA;AAAA;AAdA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAEA;AACA;AACA;AACA;AACA;;AAuCA;;AAEA;AAAA;AA7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAyDA;AACA;AAAA;AAGA;AACA;AAAA;AAoJA;AACA;AACA;AAKA;AACA;AACA;AAAA;AAGA;AACA;AACA;AA1NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAIA;AAAA;AAGA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAUA;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;AACA;AACA;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;AACA;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAGA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAmBA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;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;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;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;;AAEA;AACA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;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;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;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;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;AAEA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAIA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACznBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAOA;AAAA;AALA;AACA;AACA;AACA;AAqFA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAGA;AACA;AACA;AACA;AA9FA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAkBA;;;;;;;;;;;;;;;;;;;;;;AClHA;AACA;AACA;AACA;AACA;AACA;AAEA;AAGA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;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;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAOA;AAAA;AALA;AACA;AACA;AAEA;AAsCA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAGA;AACA;AACA;AACA;AAjDA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAoBA;AAAA;AAfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAsBA;AAAA;AAAA;AAnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AAAA;AAAA;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;AAEA;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;AAAA;AAAA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAAA;AAGA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;ACrQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAIA;;AAqBA;AAAA;AAtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAoFA;AAAA;AAAA;AA/EA;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;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;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAMA;AAEA;AAEA;AACA;AAEA;AACA;AAEA;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;AAEA;AACA;AACA;AAEA;AAEA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAEA;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;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;AAEA;AACA;AACA;AACA;AAGA;;;;;;;;;;;;;AC5TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACXA;AACA;AACA;AACA;;;;;;;;;;;ACHA;AACA;AACA;AACA;;;;;;;;;;;ACHA;AACA;AACA;AACA;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["webpack://HRMSPortal/./src/components/employee/employeemastercomponent.js","webpack://HRMSPortal/./src/components/employeefeedback/employeefeedbackcomponent.js","webpack://HRMSPortal/./src/components/employeefeedback/fetchsaveemployeefeedback/saveddatacomponent.js","webpack://HRMSPortal/./src/components/employeefeedback/reopenmodal/reopenmodal.js","webpack://HRMSPortal/./src/components/employeefeedback/viewfeedback/viewfeedback.js","webpack://HRMSPortal/./src/components/employeemaster/employeemastercomponent.js","webpack://HRMSPortal/./src/components/employeesalaryrevision/employeesalaryrevisioncomponent.js","webpack://HRMSPortal/./src/components/employee/employeemastercomponent.html","webpack://HRMSPortal/./src/components/employeefeedback/employeefeedbackcomponent.html","webpack://HRMSPortal/./src/components/employeefeedback/fetchsaveemployeefeedback/saveddatacomponent.html","webpack://HRMSPortal/./src/components/employeefeedback/reopenmodal/reopenmodal.html","webpack://HRMSPortal/./src/components/employeefeedback/viewfeedback/viewfeedback.html","webpack://HRMSPortal/./src/components/employeemaster/employeemastercomponent.html","webpack://HRMSPortal/./src/components/employeesalaryrevision/employeesalaryrevisioncomponent.html"],"sourcesContent":["import {inject } from 'aurelia-framework';\r\nimport {HttpClient, json} from 'aurelia-fetch-client';\r\nimport {Router,activationStrategy} from 'aurelia-router';\r\nimport {EmployeeService} from '../../shared/services/employeeservice';\r\nimport {SharedState} from '../../shared/state/sharedstate';\r\nimport {config} from '../../shared/services/config';\r\nimport Scrollbar from 'smooth-scrollbar';\r\nimport {LoginService} from \"../../shared/services/loginservice\";\r\nimport {JwtService} from \"../../shared/services/jwtservice\";\r\n\r\n\r\n@inject(EmployeeService, SharedState, Router, HttpClient,LoginService,JwtService)\r\nexport class EmployeeMaster {\r\n \r\n constructor(employeeService, sharedState, httpClient,router,loginservice,jwtService) {\r\n this.employeeService = employeeService;\r\n this.sharedState = sharedState;\r\n this.router = router;\r\n this.httpClient = httpClient;\r\n this.router = router;\r\n this.loginservice = loginservice;\r\n this.jwtService = jwtService;\r\n \r\n }\r\n\r\n\r\n employeedetails = [];\r\n pageSize = 10;\r\n \r\n filters = [ {value: '', keys: ['UserName']},];\r\n\r\n attached(){\r\n this.isLoading = true;\r\n // if(this.jwtService.getToken() === undefined){\r\n // this.loginservice.purgeAuth();\r\n // this.router.navigateToRoute('login')\r\n // }\r\n // setTimeout(() => {\r\n // this.isLoading = false;\r\n // }, 3000);\r\n this.employeeService.GetAllEmployeeDetails()\r\n .then(data=>{\r\n this.employeedetails = data;\r\n this.isLoading = false;\r\n });\r\n setTimeout(()=>{\r\n Scrollbar.init(document.querySelector('.smooth-scrollbar'));\r\n },4000);\r\n }\r\n}\r\n\r\n","import {inject} from 'aurelia-framework';\r\nimport { FeedbackService } from '../../shared/services/feedbackservice';\r\nimport {ValidationControllerFactory, ValidationRules} from 'aurelia-validation';\r\nimport * as tinymce from 'tinymce';\r\nimport {Router} from 'aurelia-router';\r\nimport { App } from '../../app';\r\nimport {DialogService} from 'aurelia-dialog';\r\nimport {LeavemanagementService} from \"../../shared/services/leavemanagementservice\";\r\nimport {SavedDataComponent} from \"./fetchsaveemployeefeedback/saveddatacomponent\";\r\nimport { JwtService } from '../../shared/services/jwtservice';\r\nimport { config } from '../../shared/services/config';\r\nimport { AttendanceService } from '../../shared/services/attendanceservice';\r\nimport { Viewfeedback } from './viewfeedback/viewfeedback';\r\nimport {LoginService} from \"../../shared/services/loginservice\";\r\nimport { Reopenmodal } from './reopenmodal/reopenmodal';\r\nimport { constants } from '../../shared/services/constants';\r\nimport { DashboardService } from '../../shared/services/dashboardservice';\r\n\r\n\r\n@inject(FeedbackService, ValidationControllerFactory,DialogService ,LeavemanagementService,JwtService,AttendanceService, Router, App,LoginService,JwtService,DashboardService)\r\nexport class EmployeeFeedbackComponent {\r\n options = []; //sendto array\r\n selected = {}; //selected employees in send to\r\n searchText = ''; //search text in send to dropdown\r\n selectAll = true; //select all in send to dropdown\r\n departments = []; // departments array\r\n errors = null;\r\n selectedSentoEmployees = [];\r\n SelectedSendtoEmployeesIDs = [];\r\n EmployeeListIDs = [];\r\n showPopup = false;\r\n pageSize = config.grid_PazeSize;\r\n topicsPageSize = config.grid_PazeSize;\r\n showDropdown = false;\r\n selectedEmployees = '';\r\n showEmpDropdown = false;\r\n removeButton = true;\r\n updateMessages = false;\r\n\r\n selectedOption = '1';\r\n employeeOrDepartment = '1';\r\n employeeType;\r\n\r\n selectedOptionLabel = \"Feedback\";\r\n FeedbackLabel = \"Feedback\";\r\n GrievanceLabel = \"Grievance\";\r\n feedbackValue = \"\";\r\n grievanceValue = \"\";\r\n formType = '';\r\n emails = '';\r\n emailsErrors = null;\r\n selectedFormType = 1;\r\n\r\n editor;\r\n commentsMessage;\r\n\r\n fileMessage;\r\n gridfeedbackData = [];\r\n siteMapId=constants.myfeedbackSiteMapID;\r\n\r\n isFormSubmitted = false;\r\n siteMapId=constants.myfeedbackSiteMapID;\r\n\r\n\r\n //pageSize = 10;\r\n\r\n constructor(feedbackservice, controllerFactory, dialogService,LeavemanagementService,JwtService,AttendanceService, router, App,loginservice,jwtService,DashboardService) {\r\n this.feedbackservice = feedbackservice;\r\n this.jwtService = JwtService;\r\n this.attendanceService = AttendanceService;\r\n this.controller = controllerFactory.createForCurrentScope();\r\n this.searchQuery = '';\r\n this.dropdownOptions = [];\r\n this.selectedEmployees = [];\r\n this.selectedSentoEmployees = [];\r\n this.selectedEmployee = null;\r\n this.filterEmpOption = '';\r\n this.dialogService = dialogService;\r\n this.leavemanagementService = LeavemanagementService;\r\n this.router = router;\r\n this.app = App;\r\n this.loginservice = loginservice;\r\n this.jwtService = jwtService;\r\n this.dashboardService = DashboardService;\r\n\r\n this.EmpId = this.jwtService.getEmployeeId();\r\n document.addEventListener('click', this.handleClickOutsideDropdown);\r\n ValidationRules\r\n .ensure('title').required().withMessage(\"Subject is required\")\r\n .maxLength(100)\r\n .withMessage('Subject should be less than 100 characters.')\r\n // .ensure('selectedOptions').required().withMessage(\"Send to filed is required\")\r\n .ensure('emails')\r\n .satisfies((value) => {\r\n if (value && value.trim() !== '') {\r\n const emails = value.split(',');\r\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.(com|co|in|org|cc|net)$/;\r\n const invalidEmails = [];\r\n\r\n for (const email of emails) {\r\n const trimmedEmail = email.trim();\r\n if (!emailRegex.test(trimmedEmail)) {\r\n invalidEmails.push(trimmedEmail);\r\n }\r\n }\r\n if (invalidEmails.length > 0 || (emails.length > 1 && value.indexOf(',') === -1)) {\r\n this.emailsErrors = ['Invalid email address and Email(s) should be separated by commas'];\r\n return false;\r\n }\r\n }\r\n this.emailsErrors = [];\r\n return true;\r\n }).withMessage('Invalid email address(es) and Email(s) should be separated by commas')\r\n\r\n .on(this);\r\n }\r\n\r\n monthMatcher = (a,b) => {\r\n return a.key === b.key\r\n };\r\n \r\n yearMatcher = (a,b) => {\r\n return a.Year === b.year\r\n }\r\n\r\n getCurrentRouteURL() {\r\n const currentInstruction = this.router.currentInstruction;\r\n if (currentInstruction) {\r\n const routeURL = currentInstruction.fragment;\r\n const sidebarListItem = document.querySelector('.sidebar ul li.organization');\r\n if (sidebarListItem) {\r\n const subActiveItems = document.querySelectorAll('.sidebar ul li.sub-active');\r\n subActiveItems.forEach(item => item.classList.remove('sub-active'));\r\n const activeLinkItems = document.querySelectorAll('.sidebar ul li.active-link');\r\n activeLinkItems.forEach(item => item.classList.remove('active-link'));\r\n sidebarListItem.classList.add('sub-active');\r\n }\r\n const sidebarLink = document.querySelector('.sidebar ul li.organization .sidebar-sub .myfeedback a');\r\n if (sidebarLink) {\r\n sidebarLink.classList.add('active-link');\r\n }\r\n return routeURL;\r\n }\r\n return '';\r\n }\r\n\r\n attached() {\r\n this.getCurrentRouteURL();\r\n // if(this.jwtService.getToken() === undefined){\r\n // this.loginservice.purgeAuth();\r\n // this.router.navigateToRoute('login')\r\n // }\r\n this.addToRecentItems();\r\n tinymce.init({\r\n selector: '#comments',\r\n toolbar: 'undo redo | blocks fontfamily fontsize | bold italic underline strikethrough | link image media table mergetags | addcomment showcomments | spellcheckdialog a11ycheck typography | align lineheight | checklist numlist bullist indent outdent | emoticons charmap | removeformat',\r\n setup: editor => {\r\n editor.on('init', () => {\r\n this.editor = editor;\r\n this.editorContent = '';\r\n });\r\n editor.on('change', () => {\r\n this.editorContent = editor.getContent();\r\n this.commentsMessage = null;\r\n });\r\n },\r\n });\r\n const fileInput = document.querySelector('input[type=\"file\"]');\r\n const allowedTypes = ['image/jpeg', 'image/png', 'application/msword', 'application/pdf'];\r\n\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 } else {\r\n this.fileMessage = null;\r\n }\r\n }, {\r\n passive: true\r\n });\r\n\r\n this.dashboardService.GetServerCurrentDate(this.EmpId).then(data => {\r\n const apiDatetimeStr = data.CurrentDate;\r\n this.apiDatetime = new Date(apiDatetimeStr);\r\n const apiDatetime = new Date(apiDatetimeStr);\r\n // const day = apiDatetime.getDate().toString().padStart(2, \"0\");\r\n this.serverMonth = (apiDatetime.getMonth() + 1).toString();\r\n this.serverYear = apiDatetime.getFullYear().toString();\r\n this.year = this.year ? this.year : this.serverYear;\r\n this.month = this.month ? this.month : this.serverMonth;\r\n\r\n this.attendanceService.GetAttendanceMonth().then(data => {\r\n this.attendanceMonths = data;\r\n this.monthOptions = Object.entries(this.attendanceMonths).map(([key, value]) => ({ value, key }));\r\n });\r\n this.attendanceService.GetAttendanceYear().then(data => {\r\n this.attendanceYears = data;\r\n this.yearOptions = Object.entries(this.attendanceYears).map(([key, value]) => ({ value, key }));\r\n });\r\n\r\n this.feedbackservice.GetmyFeedbackData(this.EmpId,this.month,this.year).then(data => {\r\n this.gridfeedbackData = data.grievanceViewModellist;\r\n });\r\n })\r\n return this.feedbackservice.SendtoEmployeesName()\r\n .then(data => {\r\n this.options = data;\r\n });\r\n\r\n \r\n }\r\n\r\n calenderMonthConfig(data){\r\n this.month = parseInt(data.key);\r\n this.GridData();\r\n }\r\n\r\n calenderYearConfig(data){\r\n this.year = data.value.Year;\r\n this.GridData();\r\n }\r\n\r\n GridData(){\r\n this.feedbackservice.GetmyFeedbackData(this.EmpId,this.month,this.year).then(data => {\r\n this.gridfeedbackData = data.grievanceViewModellist;\r\n });\r\n }\r\n\r\n get filteredOptions() {\r\n this.filtered = this.options.filter(option =>\r\n option.EmployeeName.toLowerCase().includes(this.searchText.toLowerCase())\r\n );\r\n this.CurrentEmployee = this.filtered.filter(option => option.EmployeeID !== parseInt(this.EmpId, 10));\r\n // Check if dropdownOptions is empty\r\n if (this.CurrentEmployee.length === 0 && this.searchText.trim().length > 0) {\r\n const errorInfo = {\r\n error: {\r\n message: \"No records found\"\r\n }\r\n };\r\n this.searchTextError = [errorInfo];\r\n } else {\r\n this.searchTextError = []; // Clear any previous error messages\r\n }\r\n\r\n return this.CurrentEmployee;\r\n }\r\n\r\n updateLabels(id) {\r\n const selectedRadio = document.querySelector('input[name=\"options\"]:checked');\r\n let selectedOption = selectedRadio.value;\r\n let formType = selectedOption;\r\n this.selectedFormType = id;\r\n if (selectedOption === \"1\") {\r\n this.selectedOptionLabel = \"feedback\";\r\n this.FeedbackLabel = \"Feedback\";\r\n this.GrievanceLabel = \"Feedback\";\r\n } else if (selectedOption === \"2\") {\r\n this.selectedOptionLabel = \"Grievance\";\r\n this.FeedbackLabel = \"Grievance\";\r\n this.GrievanceLabel = \"Grievance\";\r\n }\r\n }\r\n\r\n toggleDropdown() {\r\n this.showDropdown = !this.showDropdown;\r\n\r\n }\r\n\r\n handleClickOutsideDropdown = (event) => {\r\n const dropdownElement = document.querySelector('.dropdown-menu');\r\n const buttonElement = document.querySelector('.sendto');\r\n if (\r\n dropdownElement &&\r\n !dropdownElement.contains(event.target) &&\r\n !buttonElement.contains(event.target)\r\n ) {\r\n this.closeDropdown();\r\n }\r\n };\r\n\r\n closeDropdown = () => {\r\n // Method logic here\r\n this.showDropdown = false;\r\n };\r\n\r\n selectOption(checked, option) {\r\n this.selected[option.EmployeeID] = checked;\r\n this.selectedOptions = this.options.filter(option => this.selected[option.EmployeeID]);\r\n\r\n if (checked) {\r\n this.SendToEmployeeSelectedIds = option.EmployeeID;\r\n this.SelectedSendtoEmployeesIDs.push(this.SendToEmployeeSelectedIds);\r\n this.selectedSentoEmployees.push(option.EmployeeName);\r\n } else {\r\n const index = this.SelectedSendtoEmployeesIDs.indexOf(option.EmployeeID);\r\n if (index > -1) {\r\n this.SelectedSendtoEmployeesIDs.splice(index, 1);\r\n }\r\n const nameIndex = this.selectedSentoEmployees.indexOf(option.EmployeeName);\r\n if (nameIndex > -1) {\r\n this.selectedSentoEmployees.splice(nameIndex, 1);\r\n }\r\n }\r\n }\r\n\r\n isSelected(option) {\r\n\r\n return this.selected[option];\r\n }\r\n\r\n selectAllOptions() {\r\n // Toggle the selected state for all options\r\n Object.keys(this.selected).forEach(option => this.selected[option] = this.selectAll);\r\n // Update the selectedOptions array with the currently selected options\r\n this.selectedSentoEmployees = this.options.map(option => option.EmployeeName);\r\n // Toggle the \"Select All\" button state\r\n\r\n if (this.selectAll) {\r\n this.selectedSentoEmployees = this.options.map(option => option.EmployeeName);\r\n } else {\r\n this.selectedSentoEmployees = [];\r\n }\r\n\r\n // Update the selectedOptions array with the currently selected options\r\n this.selectedOptions = this.options.filter(option => this.selected[option.EmployeeID]);\r\n this.selectAll = !this.selectAll;\r\n }\r\n\r\n\r\n async onEmployeeSelected() {\r\n this.employeeOrDepartment = '1';\r\n this.employeeType = 1;\r\n if (this.searchQuery) {\r\n this.showEmpDropdown = true;\r\n try {\r\n const response = await this.feedbackservice.EmployeeNamesForDropdown(this.searchQuery);\r\n const data = await response;\r\n\r\n const filterOption = this.searchQuery.toLowerCase();\r\n this.dropdownOptions = data.filter(option => option.EmployeeName.toLowerCase().includes(filterOption));\r\n // Check if dropdownOptions is empty\r\n this.empid = this.jwtService.getEmployeeId(); // Assuming this.empid is a string\r\n this.dropdownOptions = this.dropdownOptions.filter(option => option.EmployeeID !== parseInt(this.empid, 10));\r\n if (this.dropdownOptions.length === 0) {\r\n const errorInfo = {\r\n error: {\r\n message: \"No records found\"\r\n }\r\n };\r\n this.searchQueryError = [errorInfo];\r\n } else {\r\n // Clear any previous error messages\r\n this.searchQueryError = [];\r\n }\r\n\r\n\r\n } catch (error) {\r\n //console.error(error);\r\n }\r\n } else {\r\n this.showEmpDropdown = false;\r\n this.dropdownOptions = [];\r\n }\r\n }\r\n\r\n selectEmployee(EmpOption) {\r\n const modifiedOption = {\r\n ...EmpOption,\r\n ID: EmpOption.EmployeeID\r\n };\r\n\r\n this.searchQuery = modifiedOption.EmployeeName;\r\n\r\n this.showEmpDropdown = false;\r\n this.selectedEmployee = modifiedOption;\r\n return false;\r\n }\r\n\r\n addToSelectedOptions(id) {\r\n if (!this.searchQuery) {\r\n // If searchQuery is empty, show \"Please select an employee\" error message\r\n const errorInfo = {\r\n error: {\r\n message: \"Please select an employee\"\r\n }\r\n };\r\n this.searchQueryError = [errorInfo];\r\n return;\r\n }\r\n\r\n this.feedbackservice.GetEmployeesForAdd(id).then(data => {\r\n const selectedEmployee = this.selectedEmployees.find(employee => employee.EmployeeID === data.EmployeeID);\r\n if (selectedEmployee) {\r\n // Employee already exists in selectedEmployees, show \"Employee name already exists\" error message\r\n const errorInfo = {\r\n error: {\r\n message: \"Employee name already exists\"\r\n }\r\n };\r\n this.searchQueryError = [errorInfo];\r\n } else {\r\n // Employee does not exist in selectedEmployees, add to the list\r\n this.searchQueryError = [];\r\n this.Ids = data.EmployeeID;\r\n this.EmployeeListIDs.push(this.Ids);\r\n this.selectedEmployees.push(data);\r\n this.searchQuery = '';\r\n }\r\n });\r\n }\r\n\r\n // GetEmployeeNamesForGrid(id) {\r\n // console.log(id);\r\n // this.feedbackservice.GetEmployeesForAdd(id)\r\n // .then(data => {\r\n // this.selectedEmployees.push(data);\r\n // console.log(this.selectedEmployees);\r\n // });\r\n // }\r\n\r\n deleteEmployee(emp) {\r\n const index = this.selectedEmployees.indexOf(emp);\r\n if (index !== -1) {\r\n this.selectedEmployees.splice(index, 1);\r\n }\r\n const deletedIds = emp.EmployeeID;\r\n this.EmployeeListIDs = this.EmployeeListIDs.filter(id => id !== deletedIds);\r\n\r\n this.Ids = this.EmployeeListIDs;\r\n }\r\n\r\n onDepartmentSelected() {\r\n this.employeeOrDepartment = '2';\r\n this.employeeType = 2;\r\n return this.feedbackservice.DepartmentsForDropdown()\r\n .then(response => {\r\n this.departments = response;\r\n return false;\r\n //console.log(response);\r\n });\r\n }\r\n\r\n handleFileSelect(files) {\r\n const file = files[0];\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 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 = ''; // Clear the file input value\r\n }\r\n }\r\n\r\n viewFeedback(feedbackData){\r\n this.dialogService.open({viewModel:Viewfeedback,model:feedbackData});\r\n }\r\n\r\n reopenFeedback(reopendata){\r\n this.dialogService.open({viewModel:Reopenmodal,model:reopendata})\r\n .whenClosed((response) => {\r\n if(!response.wasCancelled){\r\n this.successMessage = 'Feedback / Grievance updated successfully.'\r\n this.GridData();\r\n this.updateMessages = true;\r\n setTimeout(() => {this.successMessage = null}, 3000);\r\n }\r\n });\r\n }\r\n\r\n submitForm() {\r\n event.preventDefault();\r\n if (this.fileMessage) {\r\n return false;\r\n }\r\n this.errors = null;\r\n this.controller.validate()\r\n .then(result => {\r\n if (result.valid) {\r\n const selectedRadio = document.querySelector('input[name=\"options\"]:checked');\r\n let selectedOption = selectedRadio.value;\r\n if (this.editorContent === '') {\r\n // if (selectedOption === \"1\") {\r\n \r\n // this.commentsMessage = \"The \"+this.FeedbackLabel.replace('F','f')+\" field is required.\";\r\n // } else if (selectedOption === \"2\") {\r\n \r\n // this.commentsMessage = \"The \"+this.FeedbackLabel.replace('G','g')+\" field is required.\";\r\n // } \r\n this.commentsMessage =\"Feedback/grievance field is required.\"; \r\n return false;\r\n }\r\n let feedbackData = {\r\n FeedbackorGrievance: this.title,\r\n Comments: this.editorContent,\r\n DocumentPath: this.file,\r\n DepartmentID: this.selectedDepartment,\r\n EmployeeType: this.employeeType,\r\n Employeelist: this.EmployeeListIDs,\r\n SendToList: this.SelectedSendtoEmployeesIDs,\r\n EmployeeEmailIds: this.emails,\r\n Type: this.selectedFormType,\r\n DocumentName: this.DocumentName,\r\n EmployeeID:this.EmpId\r\n };\r\n console.log(feedbackData);\r\n this.isFormSubmitted = true;\r\n this.feedbackservice.SaveFeedBackGrievance(feedbackData).then((response) => {\r\n this.GrievanceID = response;\r\n this.feedbackservice.ViewFeedback(this.GrievanceID)\r\n .then(data => {\r\n const viewdata = data;\r\n this.openDialogBox(viewdata);\r\n });\r\n this.selectedOptionLabel = \"feedback\";\r\n this.title = '';\r\n this.DocumentName = '';\r\n this.selectedOptions = [];\r\n this.SendToEmployeeSelectedIds = [];\r\n this.selectedSentoEmployees = [];\r\n this.searchQuery = '';\r\n this.selected = {};\r\n this.editorContent = '';\r\n this.department = '';\r\n this.selectedDepartment = null;\r\n this.emails = '';\r\n this.comment = '';\r\n this.SelectedSendtoEmployeesIDs = [];\r\n this.EmployeeListIDs = [];\r\n const fileInput = document.querySelector('input[type=file]');\r\n if (fileInput) {\r\n fileInput.value = '';\r\n }\r\n if (this.editor) {\r\n this.editor.setContent('');\r\n this.editor = null;\r\n }\r\n this.editorContent = '';\r\n this.selectedEmployees = [];\r\n setTimeout(() => {\r\n this.message = null\r\n }, 3000);\r\n this.showPopup = true;\r\n this.removeButton = false;\r\n this.isFormSubmitted = false;\r\n });\r\n } else {\r\n this.errors = \"Invalid credentials\";\r\n const errorElement = document.querySelector(\".error-messages\");\r\n if (errorElement) {\r\n errorElement.scrollIntoView({ behavior: \"auto\"});\r\n window.scrollBy(0, -200);\r\n }\r\n }\r\n })\r\n .catch(promise => {\r\n promise.then(err => this.errors = err.errors)\r\n });\r\n }\r\n\r\n resetForm(){\r\n const fileInput = document.querySelector('input[type=file]');\r\n if (fileInput) {\r\n fileInput.value = '';\r\n }\r\n if (this.editor) {\r\n this.editor.setContent('');\r\n this.editor = '';\r\n }\r\n this.editorContent = '';\r\n setTimeout(() => {\r\n this.message = null\r\n }, 3000);\r\n this.controller.reset();\r\n this.editorContent = '';\r\n this.selectedEmployees = [];\r\n this.selectedOptionLabel = '';\r\n this.title = '';\r\n this.DocumentName = '';\r\n this.selectedOptions = [];\r\n this.SendToEmployeeSelectedIds = [];\r\n this.selectedSentoEmployees = [];\r\n this.searchQuery = '';\r\n this.selected = {};\r\n this.department = '';\r\n this.selectedDepartment = null;\r\n this.emails = '';\r\n this.removeButton = false;\r\n this.commentsMessage = '';\r\n this.SelectedSendtoEmployeesIDs = [];\r\n this.EmployeeListIDs = [];\r\n this.comment = '';\r\n\r\n }\r\n\r\n openDialogBox(data) {\r\n this.dialogService.open({viewModel: SavedDataComponent,model: {viewdata: data},})\r\n .whenClosed((response) => {\r\n if(!response.wasCancelled){\r\n this.GridData();\r\n }\r\n });\r\n }\r\n\r\n detached() {\r\n tinymce.remove(this.editor);\r\n document.removeEventListener('click', this.handleClickOutsideDropdown);\r\n }\r\n\r\n cancle() {\r\n this.router.navigateToRoute('login');\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 }\r\n}\r\n","import {inject } from 'aurelia-framework';\r\nimport { FeedbackService } from '../../../shared/services/feedbackservice';\r\nimport {Router} from 'aurelia-router';\r\nimport {App} from \"../../../app\";\r\nimport {DialogController} from \"aurelia-dialog\";\r\nimport {config} from \"../../../shared/services/config\";\r\nimport {LoginService} from \"../../../shared/services/loginservice\";\r\nimport {JwtService} from \"../../../shared/services/jwtservice\";\r\n\r\n@inject(DialogController,FeedbackService, Router, App,LoginService,JwtService)\r\nexport class SavedDataComponent {\r\n SendToList = \"\";\r\n URL=config.img_url;\r\n isDragging = false;\r\n dialog;\r\n static inject = [Element];\r\n constructor(controller,feedbackservice,router,App,loginservice,jwtService) {\r\n\r\n this.controller = controller;\r\n this.feedbackservice = feedbackservice;\r\n this.router = router;\r\n this.app = App;\r\n this.router = router;\r\n this.loginservice = loginservice;\r\n this.jwtService = jwtService;\r\n }\r\n activate(model) {\r\n const viewdata = model.viewdata;\r\n this.TypeName = viewdata.TypeName;\r\n this.RaisedBy = viewdata.RaisedBy;\r\n this.FileName = viewdata.DocumentName;\r\n this.EmployeeEmailIds = viewdata.EmployeeEmailIds;\r\n this.EmployeeNames = viewdata.EmployeeNames;\r\n this.EmployeeName =viewdata.EmployeeName;\r\n this.StatusText = viewdata.StatusText;\r\n // Check if viewdata.EmployeeNames is a string and remove the leading comma if present\r\n if (typeof viewdata.EmployeeNames === 'string') {\r\n this.EmployeeNames = viewdata.EmployeeNames.replace(/^,\\s*/, '');\r\n } else {\r\n this.EmployeeNames = viewdata.EmployeeNames;\r\n }\r\n this.EmployeeType = viewdata.EmployeeType;\r\n this.Employeelist = viewdata.Employeelist;\r\n this.FeedbackorGrievance = viewdata.FeedbackorGrievance;\r\n this.SendToList = viewdata.SendToList;\r\n // Check if viewdata.SendToNames is a string and remove the leading comma if present\r\n if (typeof viewdata.SendToNames === 'string') {\r\n this.SendToNames = viewdata.SendToNames.replace(/^,\\s*/, '');\r\n } else {\r\n this.SendToNames = viewdata.SendToNames;\r\n }\r\n this.Comments = viewdata.Comments;\r\n // Remove HTML tags from the Comments string\r\n if (typeof viewdata.Comments === 'string') {\r\n const tempElement = document.createElement('div');\r\n tempElement.innerHTML = viewdata.Comments;\r\n this.Comments = tempElement.textContent || tempElement.innerText;\r\n } else {\r\n this.Comments = viewdata.Comments;\r\n }\r\n this.DepartmentName = viewdata.DepartmentName;\r\n this.Files = viewdata.DocumentPath;\r\n if (viewdata.DocumentPath) {\r\n this.file = viewdata.DocumentPath;\r\n this.DocumentName = viewdata.DocumentPath; // Set the desired file name\r\n }\r\n\r\n }\r\n attached(){\r\n this.isLoading = true;\r\n // if(this.jwtService.getToken() === undefined){\r\n // this.loginservice.purgeAuth();\r\n // this.router.navigateToRoute('login')\r\n // }\r\n }\r\n\r\n downloadFile() {\r\n const downloadUrl = this.URL + this.Files;\r\n const link = document.createElement('a');\r\n link.href = downloadUrl;\r\n link.target = '_blank';\r\n link.download = downloadUrl;\r\n link.click();\r\n }\r\n cancle() {\r\n this.controller.ok(true);\r\n }\r\n startDragging(event) {\r\n if (event.button === 0) {\r\n this.isDragging = true;\r\n this.offsetX = event.clientX - this.dialogElement.getBoundingClientRect().left;\r\n this.offsetY = event.clientY - this.dialogElement.getBoundingClientRect().top;\r\n\r\n window.addEventListener('mousemove', this.drag);\r\n window.addEventListener('mouseup', this.stopDragging);\r\n }\r\n }\r\n\r\n drag = (event) => {\r\n if (this.isDragging) {\r\n const x = event.clientX - this.offsetX;\r\n const y = event.clientY - this.offsetY;\r\n\r\n this.dialogElement.style.left = `${x}px`;\r\n this.dialogElement.style.top = `${y}px`;\r\n }\r\n }\r\n\r\n stopDragging = () => {\r\n this.isDragging = false;\r\n window.removeEventListener('mousemove', this.drag);\r\n window.removeEventListener('mouseup', this.stopDragging);\r\n }\r\n\r\n}\r\n","import { inject } from 'aurelia-framework';\r\nimport { DialogController } from 'aurelia-dialog';\r\nimport { JwtService } from '../../../shared/services/jwtservice';\r\nimport {ValidationControllerFactory, ValidationRules} from 'aurelia-validation';\r\nimport * as tinymce from 'tinymce';\r\nimport { FeedbackService } from '../../../shared/services/feedbackservice';\r\n\r\n@inject(DialogController,JwtService,ValidationControllerFactory,FeedbackService)\r\nexport class Reopenmodal {\r\n\r\n constructor(DialogController,JwtService,controllerFactory,FeedbackService) {\r\n this.jwtService = JwtService;\r\n this.controller = DialogController;\r\n this.feedbackService = FeedbackService;\r\n this.controllerFactory = controllerFactory.createForCurrentScope();\r\n\r\n this.Employeeid = this.jwtService.getEmployeeId();\r\n }\r\n\r\n activate(viewreopendata) {\r\n this.grievanceID = viewreopendata.GrievanceID\r\n this.feedback = viewreopendata.FeedbackorGrievance;\r\n }\r\n\r\n async attached() {\r\n \r\n // tinymce.init({\r\n // selector: '#content',\r\n // toolbar: 'undo redo | blocks fontfamily fontsize | bold italic underline strikethrough | link image media table mergetags | addcomment showcomments | spellcheckdialog a11ycheck typography | align lineheight | checklist numlist bullist indent outdent | emoticons charmap | removeformat',\r\n // setup: editor => {\r\n // editor.on('init', () => {\r\n // this.editor = editor;\r\n // this.editorContent = '';\r\n // });\r\n // editor.on('change', () => {\r\n // this.editorContent = editor.getContent();\r\n // });\r\n // },\r\n // });\r\n\r\n this.feedbackService.ViewmyFeedbackData(this.Employeeid,this.grievanceID).then(data => {\r\n this.status = data.StatusText;\r\n tinymce.init({\r\n selector: '#content',\r\n toolbar: 'undo redo | blocks fontfamily fontsize | bold italic underline strikethrough | link image media table mergetags | addcomment showcomments | spellcheckdialog a11ycheck typography | align lineheight | checklist numlist bullist indent outdent | emoticons charmap | removeformat',\r\n setup: editor => {\r\n editor.on('init', () => {\r\n this.editor = editor;\r\n this.editorContent = '';\r\n });\r\n editor.on('change', () => {\r\n this.editorContent = editor.getContent();\r\n });\r\n },\r\n });\r\n })\r\n }\r\n\r\n\r\n reopenSubmit(){\r\n const reopenReqData = {\r\n GrievanceID : this.grievanceID,\r\n Comments : this.editorContent,\r\n EmployeeID : this.Employeeid,\r\n }\r\n this.feedbackService.PostReopenData(reopenReqData).then(() =>{\r\n this.controller.ok(true);\r\n })\r\n }\r\n\r\n cancel() {\r\n this.controller.cancel();\r\n }\r\n}\r\n","import {inject } from 'aurelia-framework';\r\nimport {DialogController} from \"aurelia-dialog\";\r\nimport {Router} from 'aurelia-router';\r\nimport {LoginService} from \"../../../shared/services/loginservice\";\r\nimport {JwtService} from \"../../../shared/services/jwtservice\";\r\nimport { FeedbackService } from '../../../shared/services/feedbackservice';\r\nimport { config } from '../../../shared/services/config';\r\n\r\n@inject(DialogController,LoginService,JwtService,Router,FeedbackService)\r\nexport class Viewfeedback {\r\n isDragging = false;\r\n dialog;\r\n URL= config.img_url;\r\n static inject = [Element];\r\n pageSize = config.grid_PazeSize;\r\n constructor(controller,loginservice,jwtService,router,FeedbackService) {\r\n this.controller = controller;\r\n this.router = router;\r\n this.loginservice = loginservice;\r\n this.jwtService = jwtService;\r\n this.feedbackService = FeedbackService;\r\n\r\n this.EmpId = this.jwtService.getEmployeeId();\r\n }\r\n\r\n activate(feedbackData) {\r\n this.FeedData = feedbackData;\r\n this.grievanceId = feedbackData.GrievanceID;\r\n }\r\n attached(){\r\n this.isLoading = true;\r\n this.feedbackService.ViewmyFeedbackData(this.EmpId,this.grievanceId).then(data => {\r\n this.viewData = data;\r\n this.Files = this.viewData.DocumentPath;\r\n this.feedbackhistory = this.viewData.historylist;\r\n })\r\n }\r\n cancle() {\r\n this.controller.cancel();\r\n}\r\n startDragging(event) {\r\n if (event.button === 0) {\r\n this.isDragging = true;\r\n this.offsetX = event.clientX - this.dialogElement.getBoundingClientRect().left;\r\n this.offsetY = event.clientY - this.dialogElement.getBoundingClientRect().top;\r\n\r\n window.addEventListener('mousemove', this.drag);\r\n window.addEventListener('mouseup', this.stopDragging);\r\n }\r\n }\r\n\r\n drag = (event) => {\r\n if (this.isDragging) {\r\n const x = event.clientX - this.offsetX;\r\n const y = event.clientY - this.offsetY;\r\n\r\n this.dialogElement.style.left = `${x}px`;\r\n this.dialogElement.style.top = `${y}px`;\r\n }\r\n }\r\n\r\n stopDragging = () => {\r\n this.isDragging = false;\r\n window.removeEventListener('mousemove', this.drag);\r\n window.removeEventListener('mouseup', this.stopDragging);\r\n }\r\n\r\n downloadFile() {\r\n const downloadUrl = this.URL+ this.Files;\r\n const link = document.createElement('a');\r\n link.href = downloadUrl;\r\n link.target = '_blank';\r\n link.download = downloadUrl;\r\n link.click();\r\n }\r\n\r\n HistorydownloadFile(files) {\r\n const downloadUrl = this.URL+ files;\r\n const link = document.createElement('a');\r\n link.href = downloadUrl;\r\n link.target = '_blank';\r\n link.download = downloadUrl;\r\n link.click();\r\n }\r\n\r\n cancel(){\r\n this.controller.cancel();\r\n }\r\n}\r\n","import {inject } from 'aurelia-framework';\r\nimport {HttpClient, json} from 'aurelia-fetch-client';\r\nimport {Router,activationStrategy} from 'aurelia-router';\r\nimport {SharedState} from '../../shared/state/sharedstate';\r\nimport {config} from '../../shared/services/config';\r\nimport {ValidationControllerFactory, ValidationRules} from 'aurelia-validation';\r\nimport {ApiService} from '../../shared/services/apiservice';\r\nimport { EmployeeMasterService } from '../../shared/services/employeemasterservice';\r\nimport { JwtService } from '../../shared/services/jwtservice';\r\nimport {DialogService} from 'aurelia-dialog';\r\nimport { DeactivateAlertComponent } from '../alertpopup/deactivatealertcomponent';\r\nimport { writeFile, utils } from 'xlsx';\r\nimport * as XLSX from 'xlsx';\r\nimport { ActivateAlertComponent } from '../alertpopup/activatealertcomponent';\r\nimport { LeavemanagementService } from '../../shared/services/leavemanagementservice';\r\nimport { constants } from '../../shared/services/constants';\r\nimport {LoginService} from \"../../shared/services/loginservice\";\r\nimport {App} from \"../../app\";\r\n\r\n\r\n@inject(EmployeeMasterService,ApiService,LeavemanagementService,SharedState,JwtService,DialogService, Router, App, HttpClient,ValidationControllerFactory,LoginService, Element )\r\n\r\nexport class EmployeeMasterComponent {\r\n\r\n\r\n selectedEmployees = [];\r\n showEmpDropdown = true;\r\n selectedEmployeeName = '';\r\n GetAllEmployees=[];\r\n pageSize = config.grid_PazeSize;\r\n selectedEmployee = null;\r\n selectedEmployeeName = null;\r\n filteredEmployees = [];\r\n selectedStatus = 'ACT';\r\n employees = [];\r\n isLoading = false;\r\n FavoritesExist = false;\r\n sitemapId=constants.employeemastersitemapid;\r\n routerView = \"main-content\";\r\n\r\n constructor( employeemasterService,apiService,LeavemanagementService,sharedState,JwtService,DialogService, router, App, httpClient, loginservice,element) {\r\n this.employeemasterService=employeemasterService;\r\n this.apiService = apiService;\r\n this.leavemanagementService = LeavemanagementService;\r\n this.sharedState = sharedState;\r\n this.jwtService = JwtService;\r\n this.dialogService = DialogService;\r\n this.router = router;\r\n this.httpClient = httpClient;\r\n this.element = element;\r\n this.searchQuery = '';\r\n this.dropdownOptions = [];\r\n this.selectedEmployees = [];\r\n this.selectedEmployee = null;\r\n this.filterEmpOption = '';\r\n this.loginservice = loginservice;\r\n this.app = App;\r\n this.empid = this.jwtService.getEmployeeId();\r\n }\r\n\r\n filters = [{value: '', keys: [ 'EmployeeCode','EmployeeName','UserName','ReportingManager','EmployeeClassText','DepartmentName','PositionPositionLevelName' ]},];\r\n attached()\r\n {\r\n // if(this.jwtService.getToken() === undefined){\r\n // this.loginservice.purgeAuth();\r\n // this.router.navigateToRoute('login')\r\n // }\r\n this.app.updatePropertyValue(false);\r\n document.querySelector('router-view').classList.remove(this.routerView);\r\n this.isLoading = true;\r\n this.employeemasterService.GetAllEmployeeDetails('ACT',this.empid)\r\n .then(GetAllEmployees =>{\r\n this.GetAllEmployees = GetAllEmployees; \r\n this.isLoading = false; \r\n \r\n });\r\n\r\n this.leavemanagementService.GetPersonFavoriteItems(this.empid,191)\r\n .then(data=>{\r\n this.FavoritesExist=data;\r\n console.log(data);\r\n });\r\n this.addToRecentItems();\r\n \r\n }\r\n\r\n displayEmployees() {\r\n this.selectedEmployee = null;\r\n this.isLoading = true;\r\n \r\n if (this.selectedStatus === 'All') {\r\n this.employeemasterService.GetAllEmployeeDetails('',this.empid)\r\n .then(GetAllEmployees => {\r\n this.GetAllEmployees = GetAllEmployees;\r\n this.isLoading = false;\r\n });\r\n \r\n } else if (this.selectedStatus === 'ACT') {\r\n this.employeemasterService.GetAllEmployeeDetails('ACT',this.empid)\r\n .then(GetAllEmployees => {\r\n this.GetAllEmployees = GetAllEmployees;\r\n this.isLoading = false;\r\n });\r\n \r\n } else if (this.selectedStatus === 'INA') {\r\n this.employeemasterService.GetAllEmployeeDetails('INA',this.empid)\r\n .then(GetAllEmployees => {\r\n this.GetAllEmployees = GetAllEmployees;\r\n this.isLoading = false;\r\n });\r\n }\r\n \r\n }\r\n \r\n edit(EmployeeID) {\r\n \r\n // Redirect to another screen\r\n this.router.navigateToRoute('myprofile',{ id: EmployeeID});\r\n \r\n }\r\n\r\n toggleTaskDropdown($event, employee) {\r\n const isDropdownOpen = employee.showDropdown;\r\n this.filteredEmployees.forEach((item) => {\r\n item.showDropdown = false;\r\n });\r\n if (!isDropdownOpen) {\r\n employee.showDropdown = true;\r\n document.addEventListener('click', this.closeDropdown);\r\n }\r\n $event.stopPropagation();\r\n setTimeout(()=>{\r\n var dropdowns = document.getElementsByClassName(\"dropdown\");\r\n for (var i = 0; i < dropdowns.length; i++) {\r\n var dropdown = dropdowns[i];\r\n var rect = dropdown.getBoundingClientRect();\r\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\r\n if (rect.bottom > windowHeight) {\r\n dropdown.classList.add(\"upwards\");\r\n } else{\r\n dropdown.classList.remove(\"upwards\");\r\n }\r\n }\r\n },50)\r\n }\r\n\r\n toggleViewDropdown($event, employee) {\r\n const isDropdownOpen1 = employee.showDropdown1;\r\n this.filteredEmployees.forEach((item) => {\r\n item.showDropdown1 = false;\r\n });\r\n if (!isDropdownOpen1) {\r\n employee.showDropdown1 = true;\r\n document.addEventListener('click', this.closeDropdown1);\r\n }\r\n $event.stopPropagation();\r\n setTimeout(()=>{\r\n var dropdowns = document.getElementsByClassName(\"dropdown\");\r\n for (var i = 0; i < dropdowns.length; i++) {\r\n var dropdown = dropdowns[i];\r\n var rect = dropdown.getBoundingClientRect();\r\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\r\n if (rect.bottom > windowHeight) {\r\n dropdown.classList.add(\"upwards\");\r\n } else{\r\n dropdown.classList.remove(\"upwards\");\r\n }\r\n }\r\n },50)\r\n }\r\n\r\n empDetails(EmployeeID){\r\n // View Employee Details\r\n this.router.navigateToRoute('myprofile',{ id: EmployeeID});\r\n }\r\n\r\nasync deactivatePerson(PersonID) {\r\n \r\n const result = await this.dialogService.open({\r\n viewModel: DeactivateAlertComponent,\r\n model:\"\",\r\n }).whenClosed(response => response);\r\n\r\n if (result.wasCancelled) {\r\n return;\r\n }\r\n await this.employeemasterService.DeletePersonDetails(PersonID, this.empid);\r\n this.Deactivatemsg = \"Employee deactivated successfully\";\r\n this.DeactivateDeletmessage = true; \r\n \r\n this.isLoading = false; \r\n window.location.reload();\r\n }\r\n\r\nasync activatePerson(PersonID) {\r\n \r\n const result = await this.dialogService.open({\r\n viewModel: ActivateAlertComponent,\r\n model:\"\",\r\n }).whenClosed(response => response);\r\n\r\n if (result.wasCancelled) {\r\n return;\r\n }\r\n await this.employeemasterService.ActivatePersonDetails(PersonID, this.empid);\r\n // this.Deactivatemsg = \"Employee deactivated successfully\";\r\n // this.DeactivateDeletmessage = true; \r\n window.location.reload();\r\n}\r\n\r\n//Export to Excel\r\n\r\nexportData() {\r\n\r\n const data = this.GetAllEmployees; \r\n const filename = 'employeedetails';\r\n this.exportToExcel(data, filename); \r\n \r\n}\r\n\r\nexportToExcel(data, filename) {\r\n\r\n const requiredColumns = ['EmployeeCode', 'EmployeeName', 'ReportingManager','UserName', 'EmployeeClass', 'DepartmentName', 'PositionLevel'];\r\n \r\n const filteredData = data.map(employee => {\r\n return {\r\n Employeecode: employee.EmployeeCode,\r\n Employeename: employee.EmployeeName,\r\n ReportingManager : employee.ReportingManager,\r\n Username: employee.UserName,\r\n Employeeclass: employee.EmployeeClassText,\r\n Departmentname:employee.DepartmentName,\r\n Positionlevel:employee.PositionPositionLevelName\r\n };\r\n });\r\n \r\n // const worksheet = XLSX.utils.json_to_sheet(data); // show all columns in Excel sheet.\r\n const worksheet = XLSX.utils.json_to_sheet(filteredData);\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\r\n addToFavourites(){ \r\n // this.sitemapId=191; \r\n \r\n this.leavemanagementService.AddToFavourites(this.empid,this.sitemapId).then(data=>\r\n {\r\n console.log(data); \r\n location.reload();\r\n });\r\n \r\n }\r\n addToRecentItems(){ \r\n this.leavemanagementService.AddToRecentItems(this.empid,this.sitemapId).then(data=>\r\n {\r\n // window.location.reload();\r\n\r\n });\r\n }\r\n\r\n}\r\n","import {inject} from 'aurelia-dependency-injection';\r\nimport { EmployeeService } from '../../shared/services/employeeservice';\r\nimport {ValidationControllerFactory, ValidationRules} from 'aurelia-validation';\r\nimport {JwtService} from '../../shared/services/jwtservice';\r\nimport {Router} from 'aurelia-router';\r\nimport { SalaryRevisionService } from '../../shared/services/salaryrevisionservice';\r\nimport flatpickr from \"flatpickr\";\r\nimport {LeavemanagementService} from \"../../shared/services/leavemanagementservice\";\r\nimport { Constants } from '../../../node_modules/msal/lib-commonjs/index';\r\nimport { constants } from '../../shared/services/constants';\r\nimport { config } from '../../shared/services/config';\r\nimport * as XLSX from 'xlsx';\r\n\r\n\r\n@inject(SalaryRevisionService,EmployeeService,LeavemanagementService,JwtService,ValidationControllerFactory,JwtService,Router)\r\nexport class EmployeeSalaryRevisionComponent {\r\n \r\n EmployeeSalaryRevisionList=[];\r\n FromDate='2023-12-16';//'2023-12-11';\r\n ToDate='2024-02-16';\r\n isDropdownOpen = false;\r\n selectedStatus = 'ACT';\r\n defaultToDate;\r\n defaultFromDate; \r\n showEmployeeDropdown = false;\r\n FavoritesExist = false;\r\n sitemapId=constants.employeesalaryrevisionlistsitemapid;\r\n pageSize=config.grid_PazeSize;\r\n\r\n\r\n statusOptions = [\r\n { label: 'All', value: 'All', checked: false },\r\n { label: 'Pending submission', value: 'ACT', checked: true },\r\n { label: 'Pending approval', value: 'PEA', checked: true },\r\n { label: 'Need clarification', value: 'NED', checked: false },\r\n { label: 'Approved', value: 'APP', checked: false }\r\n ];\r\n \r\n\r\n constructor(salaryrevisionService,LeavemanagementService,JwtService,controllerFactory,jwtService,router){\r\n \r\n // this.controller = controllerFactory.createForCurrentScope();\r\n this.jwtService = jwtService;\r\n this.router = router;\r\n this.salaryrevisionService=salaryrevisionService;\r\n this.leavemanagementService = LeavemanagementService;\r\n this.jwtService= JwtService;\r\n // this.empid = this.jwtService.getEmployeeId();\r\n }\r\n attached() {\r\n this.LoginempId=window.localStorage['EmployeeID'];\r\n\r\n const fromDate = new Date();\r\n fromDate.setMonth(fromDate.getMonth() -4);\r\n this.FDate = fromDate.toLocaleDateString().replace(/\\//g, '-');\r\n this.From = this.FDate;\r\n const toDate = new Date();\r\n toDate.setMonth(toDate.getMonth() + 6);\r\n this.TDate = toDate.toLocaleDateString().replace(/\\//g, '-');\r\n this.To= this.TDate;\r\n flatpickr(this.FromdatePicker, {\r\n closeOnSelect: true,\r\n dateFormat: 'd-m-Y',\r\n minDate: null,\r\n maxDate: null,\r\n defaultDate: fromDate,\r\n enableTime: false,\r\n enableSeconds: false,\r\n time_24hr: false,\r\n minuteIncrement: 1,\r\n hourIncrement: 1,\r\n timeFormat: 'h:i K',\r\n clickOpens:false,\r\n onClose: function (selectedDates, dateStr, instance) {\r\n this.FromDate = dateStr;\r\n }\r\n });\r\n this.FromcalendarIcon.addEventListener('click', () => {\r\n this.FromdatePicker._flatpickr.open();\r\n });\r\n flatpickr(this.TodatePicker, {\r\n closeOnSelect: true,\r\n dateFormat: 'd-m-Y',\r\n minDate: null,\r\n maxDate: null,\r\n defaultDate: toDate,\r\n enableTime: false,\r\n enableSeconds: false,\r\n time_24hr: false,\r\n minuteIncrement: 1,\r\n hourIncrement: 1,\r\n timeFormat: 'h:i K',\r\n clickOpens:false,\r\n onClose: function (selectedDates, dateStr, instance) {\r\n this.default = dateStr;\r\n }\r\n });\r\n this.TocalendarIcon.addEventListener('click', () => {\r\n this.TodatePicker._flatpickr.open();\r\n });\r\n\r\n this.salaryrevisionService.DepartmentDropdown(this.LoginempId, 'ACT')\r\n .then(data => {\r\n this.departments = data;\r\n console.log(this.departments);\r\n });\r\n\r\n this.salaryrevisionService.getEmployeeSalaryRevision(this.FromDate,this.ToDate,'ACT',this.LoginempId)\r\n .then(data =>{\r\n this.EmployeeSalaryRevisionList = data; \r\n console.log(data); \r\n });\r\n\r\n this.salaryrevisionService.GetPersonFavoriteItems(this.LoginempId,this.sitemapId)\r\n .then(data=>{\r\n this.FavoritesExist=data;\r\n });\r\n }\r\n\r\n filters = [\r\n {value: '', keys: ['EmployeeName','PositionlevelName','RevisionPeriod','NextRevisionDueDate']},\r\n ];\r\n\r\n addToFavourites(){\r\n \r\n this.salaryrevisionService.AddToFavourites(this.LoginempId,this.sitemapId).then(data=>\r\n {\r\n this.FavoritesExist=data;\r\n window.location.reload();\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 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 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 async displayEmployeess(event) {\r\n this.showEmployeeDropdown = true;\r\n const statusVal = event.target.value;\r\n this.salaryrevisionService.DepartmentDropdown(this.LoginempId, statusVal)\r\n .then(data => {\r\n this.departments = data;\r\n console.log(this.departments);\r\n });\r\n \r\n }\r\n\r\n selectEmployees (empOptions) {\r\n const modifiedOption = { ...empOptions, ID: empOptions.EmployeeID };\r\n \r\n this.eName = modifiedOption.EmployeeName;\r\n this.eNameID = modifiedOption.EmployeeID;\r\n this.showEmployeeDropdown = false;\r\n this.selectedEmployee = modifiedOption;\r\n const finalToDate = this.ToDate ? this.ToDate : this.defaultToDate;\r\n const finalFromDate = this.FromDate ? this.FromDate : this.defaultFromDate;\r\n const timeoff = {\r\n Fromdate: finalFromDate,\r\n Todate: finalToDate,\r\n EmployeeId: this.eNameID,\r\n };\r\n //console.log(timeoff);\r\n // this.isLoading = true;\r\n // this.leavemanagementService.GetEmployeeTimeOffRequests(timeoff).then(data=> {\r\n // this.EmployeeTimeOffRequests = data.List;\r\n // this.isLoading = false;\r\n // //console.log(timeoff);\r\n // });\r\n \r\n }\r\n\r\n calculateDateDifference() {\r\n const filterOpenElements = document.querySelectorAll('.filter-open');\r\n filterOpenElements.forEach(element => element.classList.remove('filter-open'));\r\n // const selectedStatusLists = this.selectedStatuses.map(status => status.value);\r\n const selectedStatusList = this.statusOptions\r\n .filter(status => status.checked)\r\n .map(status => status.value);\r\n \r\n const finalToDate = this.ToDate ? this.ToDate : this.defaultToDate;\r\n const finalFromDate = this.FromDate ? this.FromDate : this.defaultFromDate;\r\n console.log(finalToDate);\r\n const selectedRadio = document.querySelector('input[name=\"employees\"]:checked');\r\n this.selectedValue = selectedRadio ? selectedRadio.value : '';\r\n const listData = {\r\n Fromdate: finalFromDate,\r\n Todate: finalToDate,\r\n EmployeeStatus: this.selectedValue,\r\n StatusList: selectedStatusList.includes('All') ? ['All'] : selectedStatusList.filter(status => status !== 'All'),\r\n DepartmentID: this.department,\r\n // EmployeeClassID: this.employeeclass,\r\n LoggedInEmployeeId : this.LoginempId,\r\n };\r\n console.log(listData);\r\n this.isLoading = true;\r\n \r\n // this.leavemanagementService.GetEmployeeTimeOffRequests(timeoff)\r\n // .then(data => {\r\n // this.EmployeeTimeOffRequests = data.List;\r\n // this.isLoading = false;\r\n // //console.log(timeoff.EmployeeName);\r\n // console.log(this.EmployeeTimeOffRequests);\r\n // });\r\n\r\n this.salaryrevisionService.getEmployeeSalaryRevision(this.FromDate,this.ToDate,'ACT',this.LoginempId)\r\n .then(data =>{\r\n this.EmployeeSalaryRevisionList = data; \r\n console.log(data); \r\n console.log(listData); \r\n });\r\n }\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 handleCheckboxChange(event, status) {\r\n if (status.value === 'All') {\r\n this.statusOptions.forEach((statusOption, index) => {\r\n if (index !== 0) {\r\n statusOption.checked = false;\r\n }\r\n });\r\n } else {\r\n const allChecked = this.statusOptions.slice(1).every(statusOption => statusOption.checked);\r\n this.statusOptions[0].checked = allChecked;\r\n }\r\n \r\n //status.checked = event.target.checked;\r\n }\r\n \r\n resetDepartmentDropdown() {\r\n this.department = ''; // Reset the selected department to empty value\r\n }\r\n\r\n resetStatusDropdown() {\r\n this.statusOptions.forEach((status, index) => {\r\n if (index === 1 || index === 2) {\r\n status.checked = true; // Select 'Pending approval' and 'Pending with me'\r\n } else {\r\n status.checked = false; // Deselect other statuses\r\n }\r\n });\r\n \r\n // Update the selectedStatusList if needed\r\n this.selectedStatusList = this.statusOptions.filter(status => status.checked);\r\n \r\n //console.log(this.selectedStatusList);\r\n }\r\n\r\n exportData() {\r\n const data = this.EmployeeSalaryRevisionList;\r\n const filename = 'EmployeeSalaryRevision';\r\n this.exportToExcel(data, filename);\r\n }\r\n exportToExcel(data, filename) {\r\n const headers = {\r\n Employeename: 'Employee name',\r\n Department: 'Department',\r\n Position: 'Position',\r\n Revisionperiod: 'Revision period',\r\n Revisionduedate: 'Revision due date',\r\n Status: 'Status', \r\n };\r\n const filteredData = data.map(revision => {\r\n return {\r\n Employeename:revision.EmployeeName,\r\n Department:revision.DepartmentName,\r\n Position: revision.PositionlevelName,\r\n Revisionperiod:revision.RevisionPeriod,\r\n Revisionduedate:revision.NextRevisionDueDate,\r\n Status:revision.StatusCode, \r\n \r\n };\r\n });\r\n const headerRow = Object.values(headers);\r\n const dataRows = filteredData.map(leave => Object.values(leave));\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\r\n resetPage(){\r\n this.attached();\r\n this.selectedStatus='ACT';\r\n }\r\n\r\n \r\n }\r\n","// 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 \\r\\n \\r\\n \\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/organization-icon.svg\", import.meta.url);\nvar ___HTML_LOADER_IMPORT_1___ = new URL(\"../../images/plus-square-green.svg\", import.meta.url);\nvar ___HTML_LOADER_IMPORT_2___ = 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 code = \"\\r\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\r\\n\";\n// Exports\nexport default code;","// Module\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);\nvar ___HTML_LOADER_IMPORT_1___ = new URL(\"../../images/favourite.svg\", import.meta.url);\nvar ___HTML_LOADER_IMPORT_2___ = new URL(\"../../images/x-square.svg\", import.meta.url);\nvar ___HTML_LOADER_IMPORT_3___ = new URL(\"../../images/dropdown-close.svg\", import.meta.url);\nvar ___HTML_LOADER_IMPORT_4___ = new URL(\"../../images/dropdown-edit.svg\", import.meta.url);\nvar ___HTML_LOADER_IMPORT_5___ = new URL(\"../../images/password-show.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 = \"\";\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/leave-calendar-days.svg\", import.meta.url);\n// Module\nvar ___HTML_LOADER_REPLACEMENT_0___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_0___);\nvar code = \"\\r\\n \\r\\n \\r\\n \";\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}