{"version":3,"file":"app-e1c0c961.d152cf98c45d962fa693.bundle.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AAAA;AAJA;AACA;AACA;AACA;AAoCA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AA0BA;AACA;AACA;AAEA;AAlFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAqBA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAOA;;;;;;;;;;;;;;;;;;;;;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAUA;AACA;AAEA;AACA;AAGA;AAAA;AAfA;AACA;AACA;AACA;AACA;AAAA;AAAA;AASA;AACA;AAuMA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAGA;AACA;AACA;AACA;AAlNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAGA;AAOA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AAAA;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;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAiBA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAEA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAjRA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAEA;AACA;AASA;AAAA;AAAA;AAAA;AARA;AACA;AACA;AACA;AACA;AACA;AACA;AA4MA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AArNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAGA;AAOA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;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;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAeA;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;AAAA;AAAA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA/QA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAGA;AACA;AAEA;AACA;AAeA;AAAA;AAAA;AAAA;AAdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAqLA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AA7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAGA;AAQA;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;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;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;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAeA;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;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAtQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAMA;AAAA;AAJA;AACA;AACA;AACA;AAkGA;AACA;AACA;AACA;AAnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AAEA;AACA;AAcA;AAAA;AAAA;AAAA;AAbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAiRA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AA1RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAGA;AAQA;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;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;AAAA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;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;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAeA;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;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAlWA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AAAA;AALA;AACA;AACA;AACA;AAyEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAGA;AACA;AACA;AACA;AAnFA;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;AAAA;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;AAiBA;;;;;;;;;;;;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACPA;AACA;AACA;AACA","sources":["webpack://HRMSPortal/./src/components/myprofile/academicdetails/academicdetails.js","webpack://HRMSPortal/./src/components/myprofile/academicdetails/addacademicdetails/addacademicdetails.js","webpack://HRMSPortal/./src/components/myprofile/academicdetails/editacademicdetails/editacademicdetailscomponent.js","webpack://HRMSPortal/./src/components/myprofile/agreements/addagreement/addagreement.js","webpack://HRMSPortal/./src/components/myprofile/agreements/agreements.js","webpack://HRMSPortal/./src/components/myprofile/agreements/editaggrement/editaggrement.js","webpack://HRMSPortal/./src/components/myprofile/agreements/viewaggrement/viewaggrement.js","webpack://HRMSPortal/./src/components/myprofile/academicdetails/academicdetails.html","webpack://HRMSPortal/./src/components/myprofile/academicdetails/addacademicdetails/addacademicdetails.html","webpack://HRMSPortal/./src/components/myprofile/academicdetails/editacademicdetails/editacademicdetailscomponent.html","webpack://HRMSPortal/./src/components/myprofile/agreements/addagreement/addagreement.html","webpack://HRMSPortal/./src/components/myprofile/agreements/agreements.html","webpack://HRMSPortal/./src/components/myprofile/agreements/editaggrement/editaggrement.html","webpack://HRMSPortal/./src/components/myprofile/agreements/viewaggrement/viewaggrement.html"],"sourcesContent":["import {inject } from 'aurelia-framework';\r\nimport { ProfileService } from '../../../shared/services/profielservice';\r\nimport { JwtService } from '../../../shared/services/jwtservice';\r\nimport {DialogService} from 'aurelia-dialog';\r\nimport { Addacademicdetails } from './addacademicdetails/addacademicdetails';\r\nimport { EditAcademicdetails } from './editacademicdetails/editacademicdetailscomponent';\r\nimport { AlertpopupComponent } from '../../alertpopup/alertpopupcomponent';\r\nimport { Router } from 'aurelia-router';\r\nimport Scrollbar from 'smooth-scrollbar';\r\nimport {config} from '../../../shared/services/config';\r\nimport {LoginService} from \"../../../shared/services/loginservice\";\r\n@inject(ProfileService,JwtService,DialogService,Router,LoginService)\r\nexport class Academicdetails {\r\n Successmessages = false;\r\n Deletmessages = false;\r\n pageSize = config.grid_PazeSize;\r\n users = [];\r\n constructor(ProfileService,JwtService,DialogService,router,loginService) {\r\n this.profileService = ProfileService;\r\n this.jwtService = JwtService;\r\n this.dialogService = DialogService;\r\n this.router = router;\r\n this.loginService = loginService;\r\n this.empid=this.jwtService.getEmployeeId();\r\n }\r\n bind() {\r\n setTimeout(()=>{\r\n Scrollbar.init(document.querySelector('.academic-scrollbar'));\r\n },100);\r\n }\r\n nameLength(row) {\r\n return row.EducationType.length;\r\n }\r\n activate(){\r\n this.academaicdetails=this.GetacademaicData();\r\n }\r\n async attached() {\r\n const id = this.router.currentInstruction.queryParams.id;\r\n if(id != null && id !='' && id !=undefined)\r\n {\r\n this.empid=id;\r\n }\r\n else{\r\n this.empid=this.jwtService.getEmployeeId();\r\n }\r\n document.addEventListener('refreshData', this.GetacademaicData);\r\n document.addEventListener('refreshData', this.handleRefreshEducation);\r\n document.addEventListener('refreshDataEdit', this.refreshDataEdit);\r\n const educationrefresh = await this.profileService.GetAcademicDetails(this.empid);\r\n this.academaicdetails = educationrefresh;\r\n }\r\n handleRefreshEducation = () => {\r\n const empid = this.jwtService.getEmployeeId();\r\n this.profileService.GetAcademicDetails(empid)\r\n .then(data => {\r\n this.academaicdetails = data;\r\n this.messages = \"Education details added successfully.\";\r\n this.Successmessages = true;\r\n setTimeout(()=>{this.messages=null},3000);\r\n });\r\n};\r\n refreshDataEdit = () =>{\r\n const empid = this.jwtService.getEmployeeId();\r\n this.profileService.GetAcademicDetails(empid)\r\n .then(data => {\r\n this.academaicdetails = data;\r\n this.messages = \"Education details updated successfully.\";\r\n this.Successmessages = true;\r\n setTimeout(()=>{this.messages=null},3000);\r\n });\r\n };\r\n popupaddEducations(user) {\r\n this.dialogService.open({viewModel: Addacademicdetails, model:user})\r\n }\r\n popupEditEducations(user){\r\n this.dialogService.open({viewModel: EditAcademicdetails, model:user});\r\n }\r\n async DeleteAcademicDetails(data){\r\n const empid = this.jwtService.getEmployeeId();\r\n const PersonEducationID = data.PersonEducationID;\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 await this.profileService.DeleteAcademicDetails(PersonEducationID, empid);\r\n this.profileService.GetAcademicDetails(empid).then(data=>{\r\n this.academaicdetails = data;\r\n this.Deletmessage = \"Education details deleted successfully.\";\r\n this.Deletmessages = true;\r\n setTimeout(()=>{this.Deletmessage=null},3000);\r\n });\r\n }\r\n GetacademaicData =()=>{\r\n this.profileService.GetAcademicDetails(this.empid).then(data=>{\r\n this.academaicdetails=data;\r\n })\r\n\r\n }\r\n}\r\n","import {inject,bindingMode,bindable} from 'aurelia-framework';\r\nimport { DialogController } from 'aurelia-dialog';\r\nimport {ValidationControllerFactory, ValidationRules} from 'aurelia-validation';\r\nimport { ProfileService } from '../../../../shared/services/profielservice';\r\nimport { JwtService } from '../../../../shared/services/jwtservice';\r\nimport flatpickr from \"flatpickr\";\r\n//import Scrollbar from 'smooth-scrollbar';\r\nimport {LoginService} from \"../../../../shared/services/loginservice\";\r\nimport {Router} from 'aurelia-router';\r\n\r\n@inject(DialogController,ProfileService,JwtService,ValidationControllerFactory,LoginService,Router,Element)\r\nexport class Addacademicdetails {\r\n options = [];\r\n dateDifference = null;\r\n differenceError = false;\r\n isDragging = false;\r\n dialog;\r\n static inject = [Element];\r\n\r\n @bindable({\r\n defaultBindingMode: bindingMode.twoWay\r\n }) StartDate;\r\n @bindable({\r\n defaultBindingMode: bindingMode.twoWay\r\n }) EndDate;\r\n StartDate = null;\r\n EndDate = null;\r\n constructor(controller, ProfileService, JwtService, controllerFactory,loginService,router,element) {\r\n this.controller = controller;\r\n this.profileService = ProfileService;\r\n this.jwtService = JwtService;\r\n this.StartDate=null;\r\n this.EndDate=null;\r\n this.dateDifference = '';\r\n this.currentyearresponse=0;\r\n this.loginService = loginService;\r\n this.router = router;\r\n this.empid=this.jwtService.getEmployeeId();\r\n this.element = element;\r\n this.controllerFactory = controllerFactory.createForCurrentScope();\r\n ValidationRules.customRule(\r\n 'dateError',\r\n () =>{\r\n if(this.differenceError === true){\r\n return false;\r\n }else{\r\n return true;\r\n }\r\n },\r\n '${$displayName} date should be less than end date.'\r\n );\r\n ValidationRules\r\n .ensure('EndDate').displayName(\"Start\")\r\n .satisfiesRule('dateError')\r\n .ensure('universty').displayName(\"University / College\").required()\r\n .ensure('Education').required()\r\n .ensure('Year').required().withMessage('Year of passing is required')\r\n .on(this);\r\n}\r\n handleKeyDown(event) {\r\n if (event.key === 'Enter') {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n return false;\r\n }\r\n return true;\r\n }\r\n attached() {\r\n this.specializationInput.focus();\r\n const d = new Date();\r\n this.currentyear = d.getFullYear();\r\n //Scrollbar.init(document.querySelector('.smooth-scrollbar'));\r\n flatpickr(this.datePicker, {\r\n closeOnSelect: true,\r\n dateFormat: 'd-m-Y',\r\n minDate: null,\r\n maxDate: 'today',\r\n defaultDate: this.dateValue,\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.DateofBirth = dateStr;\r\n }\r\n });\r\n this.calendarIcon.addEventListener('click', () => {\r\n this.datePicker._flatpickr.open();\r\n });\r\n flatpickr(this.datePickerss, {\r\n closeOnSelect: true,\r\n dateFormat: 'd-m-Y',\r\n minDate: null,\r\n maxDate: 'today',\r\n defaultDate: this.dateValue,\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.DateofBirth = dateStr;\r\n }\r\n });\r\n this.calendarIconEnd.addEventListener('click', () => {\r\n this.datePickerss._flatpickr.open();\r\n });\r\n const empid = this.jwtService.getEmployeeId();\r\n this.profileService.EducationDropdown()\r\n .then(data => {\r\n this.Educationoptions = Object.entries(data).map(([key, value]) => ({\r\n value,\r\n key\r\n }));\r\n });\r\n this.profileService.GetAllEducation();\r\n this.profileService.GetUniversity();\r\n this.profileService.EducationGetScore(empid)\r\n .then(data => {\r\n this.EducationScore = Object.entries(data).map(([key, value]) => ({\r\n value,\r\n key\r\n }));\r\n });\r\n}\r\n calculateDateDifference() {\r\n if (this.StartDate && this.EndDate) {\r\n const fromParts = this.StartDate.split('-');\r\n const toParts = this.EndDate.split('-');\r\n const fromDate = new Date(fromParts[2], fromParts[1] - 1, fromParts[0]);\r\n const toDate = new Date(toParts[2], toParts[1] - 1, toParts[0]);\r\n const differenceInTime = toDate.getTime() - fromDate.getTime();\r\n const differenceInDays = Math.ceil(differenceInTime / (1000 * 3600 * 24));\r\n const years = Math.floor(differenceInDays / 365);\r\n const months = Math.floor((differenceInDays % 365) / 30);\r\n const days = differenceInDays % 30;\r\n const formattedYears = years > 0 ? `${years} Year(s)` : '';\r\n const formattedMonths = months > 0 ? `${months} Month(s)` : '';\r\n const formattedDays = days > 0 ? `${days} Day(s)` : '';\r\n if (fromDate >= toDate) {\r\n this.differenceError = true;\r\n }\r\n else if (fromDate < toDate){\r\n this.differenceError = false;\r\n const DateValidationCheckData = {\r\n EmployeeID: this.empid,\r\n StartDate: this.StartDate,\r\n EndDate: this.EndDate,\r\n PersonEducationID: 0,\r\n };\r\n this.profileService.Educationdetailsoverlapsave(DateValidationCheckData).then(data => {\r\n if (data >= 1) {\r\n this.overlappingMessage = \"Start and end dates are overlapping. Do you want to save education?\";\r\n const errorMessages = document.querySelectorAll(\".error-messages\");\r\n if (errorMessages.length > 0) {\r\n errorMessages[0].scrollIntoView({ behavior: \"smooth\" });\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n this.differenceError = false;\r\n }}\r\n }\r\n async EducationSelected() {\r\n if (this.Education) {\r\n this.showEmpDropdown = true;\r\n try {\r\n const response = await this.profileService.GetAllEducation(this.Education);\r\n const data = await response;\r\n const filterOption = this.Education.toLowerCase();\r\n this.dropdownOptions = data.filter(option => option.toLowerCase().includes(filterOption));\r\n } catch (error) {\r\n\r\n }\r\n } else {\r\n this.showEmpDropdown = false;\r\n this.dropdownOptions = [];\r\n }\r\n}\r\nselectEducation(EmpOption) {\r\n this.Education = EmpOption;\r\n this.showEmpDropdown = false;\r\n this.selectedEmployee = EmpOption;\r\n}\r\nasync UniversitySelected() {\r\n if (this.universty) {\r\n this.UniverstyDropdown = true;\r\n try {\r\n const response = await this.profileService.GetUniversity(this.universty);\r\n const data = await response;\r\n const filterOption = this.universty.toLowerCase();\r\n this.UniveristyDropdownOptions = data.filter(option => option.toLowerCase().includes(filterOption));\r\n } catch (error) {\r\n }\r\n } else {\r\n this.UniverstyDropdown = false;\r\n this.UniveristyDropdownOptions = [];\r\n }\r\n}\r\nselectUniversity(EmpOption) {\r\n this.universty = EmpOption;\r\n this.UniverstyDropdown = false;\r\n this.selectedEmployee = EmpOption;\r\n}\r\ncancel() {\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\nsave() {\r\n this.errors = null;\r\n const refreshEvent = new CustomEvent('refreshData');\r\n event.preventDefault();\r\n this.controllerFactory.validate()\r\n .then(result => {\r\n if (result.valid) {\r\n const empid = this.jwtService.getEmployeeId();\r\n let data = {\r\n EmployeeID: empid,\r\n Education: this.Education,\r\n EducationId: 0,\r\n EducationTypeId: this.EducationTypeId,\r\n StartDate: this.StartDate,\r\n EndDate: this.EndDate,\r\n Specialization: this.Specialization,\r\n Year: this.Year,\r\n Score: this.Score,\r\n University: this.universty,\r\n CourseType: 0,\r\n ScoreType: this.ScoreType,\r\n PersonEducationID: 0,\r\n };\r\n if(this.currentyear 0) {\r\n errorMessages[0].scrollIntoView({ behavior: \"smooth\" });\r\n }\r\n\r\n }\r\n else\r\n {\r\n this.profileService.Educationdetailssave(data).then(() => {\r\n this.controller.cancel();\r\n this.profileService.GetAcademicDetails(empid).then(data => {\r\n this.academaicdetails = data;\r\n document.dispatchEvent(refreshEvent);\r\n });\r\n });\r\n }\r\n }\r\n else{\r\n const errorMessages = document.querySelectorAll(\".error-messages\");\r\n if (errorMessages.length > 0) {\r\n errorMessages[0].scrollIntoView({ behavior: \"smooth\" });\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import {inject,bindingMode,bindable } from 'aurelia-framework';\r\nimport { DialogController } from 'aurelia-dialog';\r\nimport {JwtService} from '../../../../shared/services/jwtservice';\r\nimport { ProfileService } from '../../../../shared/services/profielservice';\r\nimport {ValidationControllerFactory, ValidationRules} from 'aurelia-validation';\r\nimport flatpickr from \"flatpickr\";\r\n//import Scrollbar from 'smooth-scrollbar';\r\nimport {LoginService} from \"../../../../shared/services/loginservice\";\r\nimport {Router} from 'aurelia-router';\r\n@inject(DialogController,ProfileService,JwtService,ValidationControllerFactory,LoginService,Router, Element)\r\nexport class EditAcademicdetails {\r\n @bindable({\r\n defaultBindingMode: bindingMode.twoWay\r\n }) StartDate;\r\n @bindable({\r\n defaultBindingMode: bindingMode.twoWay\r\n }) EndDate;\r\n StartDate = null;\r\n EndDate = null;\r\n dateDifference = null;\r\n differenceError = false;\r\n options = [];\r\n isDragging = false;\r\n dialog;\r\n static inject = [Element];\r\n constructor(controller,ProfileService,JwtService,controllerFactory,loginService,router,element) {\r\n this.controller = controller;\r\n this.profileService=ProfileService;\r\n this.jwtService = JwtService;\r\n this.StartDate=null;\r\n this.EndDate=null;\r\n this.dateDifference = '';\r\n this.controllerFactory = controllerFactory.createForCurrentScope();\r\n this.element = element;\r\n this.loginService = loginService;\r\n this.router = router;\r\n this.empid=this.jwtService.getEmployeeId();\r\n ValidationRules.customRule(\r\n 'dateError',\r\n () =>{\r\n if(this.differenceError === true){\r\n return false;\r\n }else{\r\n return true;\r\n }\r\n },\r\n '${$displayName} date should be less than end date.'\r\n );\r\n ValidationRules\r\n .ensure('EndDate').displayName(\"Start\")\r\n .satisfiesRule('dateError')\r\n .ensure('Education').required()\r\n .ensure('universty').displayName(\"University / College\").required()\r\n .ensure('YearOfPassing').required().withMessage('Year of passing is required')\r\n .on(this);\r\n }\r\n activate(data){\r\n this.academicDetails = data;\r\n this.educationType = data.EducationTypeId;\r\n this.Education=data.Education;\r\n this.Specialization=data.Specialization;\r\n this.universty=data.University;\r\n this.YearOfPassing=data.Year;\r\n this.StartDate=data.StartDate;\r\n this.EndDate=data.EndDate;\r\n this.ScoreType=data.ScoreType;\r\n this.Score = data.Score;\r\n this.PersonEducationID=data.PersonEducationID;\r\n }\r\n attached() {\r\n this.specializationInput.focus();\r\n // Scrollbar.init(document.querySelector('.smooth-scrollbar'));\r\n flatpickr(this.datePicker, {\r\n closeOnSelect:true,\r\n dateFormat: 'd-m-Y',\r\n minDate: null,\r\n maxDate: 'today',\r\n defaultDate: this.dateValue,\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.DateofBirth=dateStr;\r\n }\r\n });\r\n this.calendarIcon.addEventListener('click', () => {\r\n this.datePicker._flatpickr.open();\r\n });\r\n flatpickr(this.datePickerss, {\r\n closeOnSelect:true,\r\n dateFormat: 'd-m-Y',\r\n minDate: null,\r\n maxDate: 'today',\r\n defaultDate: this.dateValue,\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.DateofBirth=dateStr;\r\n }\r\n });\r\n this.calendarIconEnd.addEventListener('click', () => {\r\n this.datePickerss._flatpickr.open();\r\n });\r\n this.profileService.EducationDropdown()\r\n .then(data => {\r\n this.Educationoptions= Object.entries(data).map(([key, value])=>({value, key}));\r\n }); \r\n this.profileService.GetAllEducation(); \r\n this.profileService.GetUniversity();\r\n this.profileService.EducationGetScore()\r\n .then(data => {\r\n this.EducationScore= Object.entries(data).map(([key, value])=>({value, key}));\r\n });\r\n this.profileService.GetAcademicDetails().then(data=>{\r\n this.editAcademicDetails=data;\r\n });\r\n }\r\n async EducationSelected() {\r\n if (this.Education) {\r\n this.showEmpDropdown = true;\r\n try {\r\n const response = await this.profileService.GetAllEducation(this.Education);\r\n const data = await response;\r\n const filterOption = this.Education.toLowerCase();\r\n \r\n this.dropdownOptions = data.filter(option => option.toLowerCase().includes(filterOption));\r\n } catch (error) {\r\n }\r\n } else {\r\n this.showEmpDropdown = false;\r\n this.dropdownOptions = [];\r\n }\r\n }\r\n selectEducation(EmpOption) {\r\n this.Education = EmpOption;\r\n this.showEmpDropdown = false;\r\n this.selectedEmployee = EmpOption;\r\n }\r\n async UniversitySelected() {\r\n if (this.universty) {\r\n this.UniverstyDropdown = true;\r\n try {\r\n const response = await this.profileService.GetUniversity(this.universty);\r\n const data = await response;\r\n const filterOption = this.universty.toLowerCase();\r\n \r\n this.UniveristyDropdownOptions = data.filter(option => option.toLowerCase().includes(filterOption));\r\n } catch (error) {\r\n }\r\n } else {\r\n this.UniverstyDropdown = false;\r\n this.UniveristyDropdownOptions = [];\r\n }\r\n }\r\n selectUniversity(EmpOption) {\r\n this.universty = EmpOption;\r\n this.UniverstyDropdown = false;\r\n this.selectedEmployee = EmpOption;\r\n }\r\n handleKeyDown(event) {\r\n if (event.key === 'Enter') {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n return false;\r\n }\r\n return true;\r\n }\r\n calculateDateDifference() {\r\n if (this.StartDate && this.EndDate) {\r\n const fromParts = this.StartDate.split('-');\r\n const toParts = this.EndDate.split('-');\r\n const fromDate = new Date(fromParts[2], fromParts[1] - 1, fromParts[0]);\r\n const toDate = new Date(toParts[2], toParts[1] - 1, toParts[0]);\r\n const differenceInTime = toDate.getTime() - fromDate.getTime();\r\n const differenceInDays = Math.ceil(differenceInTime / (1000 * 3600 * 24));\r\n const years = Math.floor(differenceInDays / 365);\r\n const months = Math.floor((differenceInDays % 365) / 30);\r\n const days = differenceInDays % 30;\r\n const formattedYears = years > 0 ? `${years} Year(s)` : '';\r\n const formattedMonths = months > 0 ? `${months} Month(s)` : '';\r\n const formattedDays = days > 0 ? `${days} Day(s)` : '';\r\n if (differenceInDays < 1) {\r\n this.differenceError = true;\r\n }else if (differenceInDays > 1){\r\n const DateValidationCheckData = {\r\n EmployeeID: this.empid,\r\n StartDate: this.StartDate,\r\n EndDate: this.EndDate,\r\n PersonEducationID: 0,\r\n };\r\n this.profileService.Educationdetailsoverlapsave(DateValidationCheckData).then(data => {\r\n if (data > 1) {\r\n this.overlappingMessage = \"Start and end dates are overlapping. Do you want to save education?\";\r\n setTimeout(() => {\r\n this.overlappingMessage = null\r\n }, 5000);\r\n const errorMessages = document.querySelectorAll(\".error-messages\");\r\n if (errorMessages.length > 0) {\r\n errorMessages[0].scrollIntoView({ behavior: \"smooth\" });\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n this.differenceError = false;\r\n }\r\n }\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 window.addEventListener('mousemove', this.drag);\r\n window.addEventListener('mouseup', this.stopDragging);\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 stopDragging = () => {\r\n this.isDragging = false;\r\n window.removeEventListener('mousemove', this.drag);\r\n window.removeEventListener('mouseup', this.stopDragging);\r\n }\r\n save() {\r\n const refreshEvent = new CustomEvent('refreshDataEdit');\r\n const educationType = document.getElementById('educationType').value;\r\n event.preventDefault();\r\n const ScoreType =document.getElementById('ScoreType').value;\r\n event.preventDefault();\r\n this.controllerFactory.validate()\r\n .then(result => {\r\n if (result.valid) {\r\n const empid = this.jwtService.getEmployeeId();\r\n let data = {\r\n EmployeeID: empid,\r\n Education: this.Education,\r\n EducationId: 0,\r\n EducationTypeId: educationType,\r\n StartDate: this.StartDate,\r\n EndDate: this.EndDate,\r\n Specialization: this.Specialization,\r\n Year: this.YearOfPassing,\r\n Score: this.Score,\r\n University: this.universty,\r\n CourseType: 0,\r\n ScoreType: ScoreType,\r\n PersonEducationID: this.PersonEducationID,\r\n };\r\n if (this.currentyear < this.Year) {\r\n this.errorMessage = \"Year of passing should be less than or equal to current year.\";\r\n const errorMessages = document.querySelectorAll(\".error-messages\");\r\n if (errorMessages.length > 0) {\r\n errorMessages[0].scrollIntoView({ behavior: \"smooth\" });\r\n }\r\n\r\n }\r\n else {\r\n this.profileService.Educationdetailssave(data).then(() => {\r\n this.controller.cancel();\r\n this.profileService.GetAcademicDetails(empid).then(data => {\r\n this.academaicdetails = data;\r\n document.dispatchEvent(refreshEvent);\r\n });\r\n });\r\n\r\n }\r\n }\r\n else {\r\n const errorMessages = document.querySelectorAll(\".error-messages\");\r\n if (errorMessages.length > 0) {\r\n errorMessages[0].scrollIntoView({ behavior: \"smooth\" });\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,bindingMode,bindable } from 'aurelia-framework';\r\nimport { DialogController } from 'aurelia-dialog';\r\nimport {ValidationControllerFactory, ValidationRules} from 'aurelia-validation';\r\nimport { ProfileService } from '../../../../shared/services/profielservice';\r\nimport { JwtService } from '../../../../shared/services/jwtservice';\r\nimport flatpickr from \"flatpickr\";\r\n//import Scrollbar from 'smooth-scrollbar';\r\nimport {LoginService} from \"../../../../shared/services/loginservice\";\r\nimport { Router } from 'aurelia-router';\r\n\r\n@inject(DialogController,ProfileService,JwtService,ValidationControllerFactory,Router,LoginService,Element)\r\nexport class Addagreement {\r\n @bindable({\r\n defaultBindingMode: bindingMode.twoWay\r\n }) FromDate;\r\n @bindable({\r\n defaultBindingMode: bindingMode.twoWay\r\n }) TillDate;\r\n FromDate = null;\r\n TillDate = null;\r\n dateDifference = null;\r\n differenceError = false;\r\n errorMessage=false;\r\n reasonerrorMessage=false;\r\n nameerrorMessage=false;\r\n file;\r\n AgreementName = '';\r\n options = [];\r\n isDragging = false;\r\n dialog;\r\n static inject = [Element];\r\n\r\n constructor(controller, ProfileService, JwtService, controllerFactory,router,loginService,element) {\r\n this.controller = controller;\r\n this.profileService = ProfileService;\r\n this.jwtService = JwtService;\r\n this.AgreementName = '';\r\n this.empid=this.jwtService.getEmployeeId();\r\n this.FromDate=null;\r\n this.TillDate=null;\r\n this.dateDifference = '';\r\n this.element = element;\r\n this.router = router;\r\n this.loginService = loginService;\r\n this.controllerFactory = controllerFactory.createForCurrentScope();\r\n this.reasonValidationErrors = [];\r\n ValidationRules.customRule(\r\n 'dateError',\r\n () =>{\r\n if(this.differenceError === true){\r\n return false;\r\n }else{\r\n return true;\r\n }\r\n },\r\n '${$displayName} from date should be less than valid till date.'\r\n );\r\n ValidationRules\r\n .ensure('TillDate').displayName(\"Valid\").satisfiesRule('dateError')\r\n .ensure('AgreementName').displayName(\"Agreement name\").required()\r\n .ensure('FromDate').displayName(\"Valid from date\").required()\r\n .ensure('TillDate').displayName(\"Valid till date\").required()\r\n .ensure('AgreementDate').displayName(\"Agreement date\").required()\r\n .ensure('Reason').maxLength(1000).withMessage('Reason should be less than 1000 characters.')\r\n .on(this);\r\n}\r\nattached() {\r\n this.specializationInput.focus();\r\n // Scrollbar.init(document.querySelector('.smooth-scrollbar'));\r\n flatpickr(this.datePicker, {\r\n closeOnSelect: true,\r\n dateFormat: 'd-m-Y',\r\n minDate: null,\r\n maxDate: null,\r\n defaultDate: this.dateValue,\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.DateofBirth = dateStr;\r\n }\r\n });\r\n\r\n this.calendarIcon.addEventListener('click', () => {\r\n this.datePicker._flatpickr.open();\r\n });\r\n flatpickr(this.datePickerss, {\r\n closeOnSelect: true,\r\n dateFormat: 'd-m-Y',\r\n minDate: null,\r\n maxDate: null,\r\n defaultDate: this.dateValue,\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.DateofBirth = dateStr;\r\n }\r\n });\r\n this.calendarIconEnd.addEventListener('click', () => {\r\n this.datePickerss._flatpickr.open();\r\n });\r\n flatpickr(this.agdatePicker, {\r\n closeOnSelect: true,\r\n dateFormat: 'd-m-Y',\r\n minDate: null,\r\n maxDate: null,\r\n defaultDate: this.dateValue,\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.DateofBirth = dateStr;\r\n }\r\n });\r\n this.agcalendarIcon.addEventListener('click', () => {\r\n this.agdatePicker._flatpickr.open();\r\n });\r\n }\r\n cancel() {\r\n this.controller.cancel();\r\n }\r\n handleFileSelect(files) {\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 }, 4000);\r\n this.removeFile();\r\n return;\r\n }\r\n else if (file.size <= maxSize) {\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 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 openFileDialog() {\r\n document.getElementById('attachments').click();\r\n }\r\n handleKeyDown(event) {\r\n if (event.key === 'Enter') {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n return false;\r\n }\r\n return true;\r\n }\r\n calculateDateDifference() {\r\n if (this.FromDate && this.TillDate) {\r\n const fromParts = this.FromDate.split('-');\r\n const toParts = this.TillDate.split('-');\r\n const fromDate = new Date(fromParts[2], fromParts[1] - 1, fromParts[0]);\r\n const toDate = new Date(toParts[2], toParts[1] - 1, toParts[0]);\r\n const differenceInTime = toDate.getTime() - fromDate.getTime();\r\n const differenceInDays = Math.ceil(differenceInTime / (1000 * 3600 * 24));\r\n const years = Math.floor(differenceInDays / 365);\r\n const months = Math.floor((differenceInDays % 365) / 30);\r\n const days = differenceInDays % 30;\r\n const formattedYears = years > 0 ? `${years} Year(s)` : '';\r\n const formattedMonths = months > 0 ? `${months} Month(s)` : '';\r\n const formattedDays = days > 0 ? `${days} Day(s)` : '';\r\n if (differenceInDays < 1) {\r\n\r\n this.differenceError = true;\r\n }\r\n else{\r\n this.differenceError = false;\r\n }\r\n\r\n }\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 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 stopDragging = () => {\r\n this.isDragging = false;\r\n window.removeEventListener('mousemove', this.drag);\r\n window.removeEventListener('mouseup', this.stopDragging);\r\n }\r\n save() {\r\n const refreshEvent = new CustomEvent('refreshData');\r\n event.preventDefault();\r\n this.controllerFactory.validate()\r\n .then(result => {\r\n if (result.valid) {\r\n const empid = this.jwtService.getEmployeeId();\r\n let data = {\r\n EmployeeID: empid,\r\n AgreementName:this.AgreementName,\r\n FromDate: this.FromDate,\r\n ToDate: this.TillDate,\r\n Value: this.Value,\r\n AgreementDate: this.AgreementDate,\r\n DocumentName:this.DocumentName,\r\n DocumentPath:this.file,\r\n Reason: this.Reason,\r\n PersonAgreementId:this.PersonAgreementId,\r\n };\r\n const AgreementNameValidatecheck={\r\n EmployeeID: this.empid,\r\n AgreementName: this.AgreementName,\r\n PersonAgreementId:this.PersonAgreementId,\r\n };\r\n if (this.AgreementName==null||this.AgreementName==\"\"||this.AgreementName==undefined) {\r\n this.errorMessage=true;\r\n this.errorMessage = 'The aggrement name field is required.';\r\n setTimeout(()=>{this.errorMessage=null},5000);\r\n const errorMessages = document.querySelectorAll(\".error-messages\");\r\n if (errorMessages.length > 0) {\r\n errorMessages[0].scrollIntoView({ behavior: \"smooth\" });\r\n }\r\n }\r\n else if (this.AgreementName.length>250){\r\n this.errorMessage=true;\r\n this.errorMessage = 'Agreement name should be less than 250 characters.';\r\n setTimeout(()=>{this.errorMessage=null},5000);\r\n const errorMessages = document.querySelectorAll(\".error-messages\");\r\n if (errorMessages.length > 0) {\r\n errorMessages[0].scrollIntoView({ behavior: \"smooth\" });\r\n }\r\n }\r\n else if (this.AgreementName!= null||this.AgreementName!=\"\"||this.AgreementName!=undefined) {\r\n this.profileService.AgreementNameAvoidDuplicate(AgreementNameValidatecheck).then(agreementName => {\r\n if (agreementName === 1) {\r\n this.errorMessage=true;\r\n this.errorMessage = 'Agreement name already exists.';\r\n const errorMessages = document.querySelectorAll(\".error-messages\");\r\n if (errorMessages.length > 0) {\r\n errorMessages[0].scrollIntoView({ behavior: \"smooth\" });\r\n }\r\n setTimeout(()=>{this.errorMessage=null},5000);\r\n }\r\n else {\r\n this.profileService.AgreementSave(data).then(() => {\r\n this.controller.ok(true);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n else{\r\n const errorMessages = document.querySelectorAll(\".error-messages\");\r\n if (errorMessages.length > 0) {\r\n errorMessages[0].scrollIntoView({ behavior: \"smooth\" });\r\n }\r\n }\r\n });\r\n}\r\n}\r\n","import {inject } from 'aurelia-framework';\r\nimport { ProfileService } from '../../../shared/services/profielservice';\r\nimport { JwtService } from '../../../shared/services/jwtservice';\r\nimport {DialogService} from 'aurelia-dialog';\r\nimport {Addagreement} from \"./addagreement/addagreement\"\r\nimport {AlertpopupComponent} from \"../../alertpopup/alertpopupcomponent\";\r\nimport {EditAgreementdetails} from \"./editaggrement/editaggrement\";\r\nimport Scrollbar from 'smooth-scrollbar';\r\nimport { Router } from 'aurelia-router';\r\nimport {config} from '../../../shared/services/config';\r\nimport {ViewAgreementdetails} from \"./viewaggrement/viewaggrement\";\r\nimport {LoginService} from \"../../../shared/services/loginservice\";\r\n\r\n@inject(ProfileService,JwtService,DialogService,Router,LoginService)\r\nexport class Agreements {\r\n users = [];\r\n Successmessages = false;\r\n Deletmessages = false;\r\n pageSize = config.grid_PazeSize;\r\n constructor(ProfileService,JwtService,DialogService,router,loginService) {\r\n this.profileService = ProfileService;\r\n this.jwtService = JwtService;\r\n this.dialogService = DialogService;\r\n this.router = router;\r\n this.loginService = loginService;\r\n this.empid = this.jwtService.getEmployeeId();\r\n }\r\n async attached(params){\r\n\r\n const id = this.router.currentInstruction.queryParams.id;\r\n if(id != null && id !='' && id !=undefined)\r\n {\r\n this.empid=id;\r\n }\r\n else{\r\n this.empid=this.jwtService.getEmployeeId();\r\n }\r\n const aggrement = await this.profileService.GetAgreementdetails(this.empid);\r\n this.Agreementdetails = aggrement;\r\n\r\n }\r\n async bind() {\r\n setTimeout(()=>{\r\n Scrollbar.init(document.querySelector('.agreement-scrollbar'));\r\n },100)\r\n }\r\n nameLength(row) {\r\n return row.AgreementName.length;\r\n }\r\n dateSort(a, b, sortOrder) {\r\n let date1 = new Date(a.registered);\r\n let date2 = new Date(b.registered);\r\n\r\n if (date1 === date2) {\r\n return 0;\r\n }\r\n\r\n if (date1 > date2) {\r\n return 1 * sortOrder;\r\n }\r\n\r\n return -1 * sortOrder;\r\n }\r\n popupaddAggrement() {\r\n this.dialogService.open({viewModel: Addagreement})\r\n .whenClosed((feedback) => {\r\n if(!feedback.wasCancelled){\r\n this.profileService.GetAgreementdetails(this.empid)\r\n .then(data => {\r\n this.Agreementdetails = data;\r\n this.messages = \"Agreement added successfully.\";\r\n this.Successmessages = true;\r\n setTimeout(()=>{this.messages=null},3000);\r\n });\r\n }\r\n })\r\n\r\n }\r\n popupEditAgreement(user){\r\n this.dialogService.open({viewModel: EditAgreementdetails , model: user})\r\n .whenClosed((feedback) => {\r\n\r\n if(!feedback.wasCancelled){\r\n this.profileService.GetAgreementdetails(this.empid).then(data =>{\r\n this.Agreementdetails = data;\r\n this.messages = \"Agreement updated successfully\";\r\n this.Successmessages = true;\r\n setTimeout(()=>{this.messages=null},3000);\r\n } );\r\n }\r\n })\r\n }\r\n popupViewAgreement(user){\r\n this.dialogService.open({viewModel: ViewAgreementdetails , model: user});\r\n }\r\n async DeleteAgreementDetails(data){\r\n const empid = this.jwtService.getEmployeeId();\r\n const PersonAgreementId = data.PersonAgreementId;\r\n const result = await this.dialogService.open({\r\n viewModel: AlertpopupComponent,\r\n model: \"\",\r\n }).whenClosed(response => response);\r\n\r\n if (result.wasCancelled) {\r\n return;\r\n }\r\n await this.profileService.DeleteAggrementDetails(PersonAgreementId, empid);\r\n this.profileService.GetAgreementdetails(empid).then(data=>{\r\n\r\n this.Agreementdetails = data;\r\n this.Deletmessage = \"Agreement deleted successfully.\";\r\n this.Deletmessages = true;\r\n setTimeout(()=>{this.Deletmessage=null},3000);\r\n });\r\n }\r\n GetAggrementData =()=>{\r\n this.profileService.GetAgreementdetails(this.empid).then(data=>{\r\n this.Agreementdetails=data;\r\n })\r\n }\r\n\r\n}\r\n","import {inject,customAttribute,bindingMode,bindable } from 'aurelia-framework';\r\nimport { DialogController } from 'aurelia-dialog';\r\nimport {ValidationControllerFactory, ValidationRules} from 'aurelia-validation';\r\nimport { ProfileService } from '../../../../shared/services/profielservice';\r\nimport { JwtService } from '../../../../shared/services/jwtservice';\r\nimport flatpickr from \"flatpickr\";\r\n//import Scrollbar from 'smooth-scrollbar';\r\nimport {config} from \"../../../../shared/services/config\";\r\nimport { Router } from 'aurelia-router';\r\nimport {LoginService} from \"../../../../shared/services/loginservice\";\r\n@customAttribute('custom-file-input')\r\n@inject(DialogController,ProfileService,JwtService,ValidationControllerFactory,Router,LoginService,Element)\r\nexport class EditAgreementdetails {\r\n @bindable({\r\n defaultBindingMode: bindingMode.twoWay\r\n }) FromDate;\r\n @bindable({\r\n defaultBindingMode: bindingMode.twoWay\r\n }) TillDate;\r\n FromDate = null;\r\n TillDate = null;\r\n dateDifference = null;\r\n differenceError = false;\r\n options = [];\r\n showOverlapError = false;\r\n AgreementName = '';\r\n viewfile=true;\r\n file;\r\n errorMessage=false;\r\n isDragging = false;\r\n dialog;\r\n static inject = [Element];\r\n constructor(controller, ProfileService, JwtService, controllerFactory,router,loginService,element) {\r\n this.controller = controller;\r\n this.profileService = ProfileService;\r\n this.jwtService = JwtService;\r\n this.FromDate=null;\r\n this.TillDate=null;\r\n this.dateDifference = '';\r\n this.empid=this.jwtService.getEmployeeId();\r\n this.AgreementName = '';\r\n this.element = element;\r\n this.router = router;\r\n this.loginService = loginService;\r\n this.controllerFactory = controllerFactory.createForCurrentScope();\r\n ValidationRules.customRule(\r\n 'dateError',\r\n () =>{\r\n if(this.differenceError === true){\r\n return false;\r\n }else{\r\n return true;\r\n }\r\n },\r\n '${$displayName} from date should be less than valid till date.'\r\n );\r\n ValidationRules\r\n .ensure('TillDate').displayName(\"Valid\").satisfiesRule('dateError')\r\n .ensure('AgreementName').displayName(\"Agreement name\").required()\r\n .ensure('FromDate').displayName(\"Valid from date\").required()\r\n .ensure('TillDate').displayName(\"Valid till date\").required()\r\n .ensure('AgreementDate').displayName(\"Agreement date\").required()\r\n .ensure('Reason').maxLength(1000).withMessage('Reason should be less than 1000 characters.')\r\n .on(this);\r\n }\r\n activate(data){\r\n this.Agreementdetails = data;\r\n this.AgreementName = data.AgreementName;\r\n this.FromDate=data.FromDate;\r\n this.TillDate=data.ToDate;\r\n this.Value=data.Value;\r\n this.Reason=data.Reason;\r\n this.AgreementDate=data.AgreementDate;\r\n this.DocumentPath=data.DocumentPath;\r\n this.DocumentName=data.DocumentName;\r\n this.DocumentNameDisplay=data.DocumentNameDisplay;\r\n this.PersonAgreementId=data.PersonAgreementId;\r\n this.uploadfile =data.DocumentPath;\r\n if (data.DocumentPath) {\r\n this.file = data.DocumentPath;\r\n this.DocumentName = data.DocumentPath // Set the desired file name\r\n }\r\n }\r\n attached() {\r\n this.specializationInput.focus();\r\n Scrollbar.init(document.querySelector('.smooth-scrollbar'));\r\n flatpickr(this.datePicker, {\r\n closeOnSelect: true,\r\n dateFormat: 'd-m-Y',\r\n minDate: null,\r\n maxDate: null,\r\n defaultDate: this.dateValue,\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.DateofBirth = dateStr;\r\n }\r\n });\r\n this.calendarIcon.addEventListener('click', () => {\r\n this.datePicker._flatpickr.open();\r\n });\r\n flatpickr(this.datePickerss, {\r\n closeOnSelect: true,\r\n dateFormat: 'd-m-Y',\r\n minDate: null,\r\n maxDate: null,\r\n defaultDate: this.dateValue,\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.DateofBirth = dateStr;\r\n }\r\n });\r\n this.calendarIconEnd.addEventListener('click', () => {\r\n this.datePickerss._flatpickr.open();\r\n });\r\n flatpickr(this.agdatePicker, {\r\n closeOnSelect: true,\r\n dateFormat: 'd-m-Y',\r\n minDate: null,\r\n maxDate: null,\r\n defaultDate: this.dateValue,\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.DateofBirth = dateStr;\r\n }\r\n });\r\n this.agcalendarIcon.addEventListener('click', () => {\r\n this.agdatePicker._flatpickr.open();\r\n });\r\n const empid = this.jwtService.getEmployeeId();\r\n this.profileService.EducationDropdown()\r\n .then(data => {\r\n this.Educationoptions = Object.entries(data).map(([key, value]) => ({\r\n value,\r\n key\r\n }));\r\n });\r\n this.profileService.GetAllEducation();\r\n this.profileService.GetUniversity();\r\n this.profileService.EducationGetScore(empid)\r\n .then(data => {\r\n this.EducationScore = Object.entries(data).map(([key, value]) => ({\r\n value,\r\n key\r\n }));\r\n });\r\n }\r\n checkForOverlap() {\r\n const startDate = new Date(this.Educationdetailsave.StartDate);\r\n const endDate = new Date(this.Educationdetailsave.EndDate);\r\n if (startDate.getFullYear() === endDate.getFullYear()) {\r\n this.showOverlapError = true;\r\n } else {\r\n this.showOverlapError = false;\r\n }\r\n }\r\n async EducationSelected() {\r\n if (this.Education) {\r\n this.showEmpDropdown = true;\r\n try {\r\n const response = await this.profileService.GetAllEducation(this.Education);\r\n const data = await response;\r\n const filterOption = this.Education.toLowerCase();\r\n this.dropdownOptions = data.filter(option => option.toLowerCase().includes(filterOption));\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 selectEducation(EmpOption) {\r\n this.Education = EmpOption;\r\n this.showEmpDropdown = false;\r\n this.selectedEmployee = EmpOption;\r\n }\r\n async UniversitySelected() {\r\n if (this.universty) {\r\n this.UniverstyDropdown = true;\r\n try {\r\n const response = await this.profileService.GetUniversity(this.universty);\r\n const data = await response;\r\n const filterOption = this.universty.toLowerCase();\r\n this.UniveristyDropdownOptions = data.filter(option => option.toLowerCase().includes(filterOption));\r\n } catch (error) {\r\n }\r\n } else {\r\n this.UniverstyDropdown = false;\r\n this.UniveristyDropdownOptions = [];\r\n }\r\n }\r\n selectUniversity(EmpOption) {\r\n this.universty = EmpOption;\r\n this.UniverstyDropdown = false;\r\n this.selectedEmployee = EmpOption;\r\n }\r\n cancel() {\r\n this.controller.cancel();\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.DocumentNameDisplay = file.name;\r\n console.log(this.DocumentNameDisplay)\r\n reader.onload = () => {\r\n this.file = reader.result;\r\n };}\r\n }\r\n openFileDialog() {\r\n document.getElementById('attachments').click();\r\n }\r\n downloadFile() {\r\n if (this.file) {\r\n const downloadfile = config.img_url +this.DocumentPath;\r\n //console.log(this.file);\r\n const link = document.createElement('a');\r\n link.href = downloadfile;\r\n link.download = this.DocumentNameDisplay; // 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 removeFile() {\r\n this.file = \"\";\r\n this.DocumentNameDisplay = \"\";\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 handleKeyDown(event) {\r\n if (event.key === 'Enter') {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n return false;\r\n }\r\n return true;\r\n }\r\n calculateDateDifference() {\r\n if (this.FromDate && this.TillDate) {\r\n const fromParts = this.FromDate.split('-');\r\n const toParts = this.TillDate.split('-');\r\n const fromDate = new Date(fromParts[2], fromParts[1] - 1, fromParts[0]);\r\n const toDate = new Date(toParts[2], toParts[1] - 1, toParts[0]);\r\n const differenceInTime = toDate.getTime() - fromDate.getTime();\r\n const differenceInDays = Math.ceil(differenceInTime / (1000 * 3600 * 24));\r\n const years = Math.floor(differenceInDays / 365);\r\n const months = Math.floor((differenceInDays % 365) / 30);\r\n const days = differenceInDays % 30;\r\n const formattedYears = years > 0 ? `${years} Year(s)` : '';\r\n const formattedMonths = months > 0 ? `${months} Month(s)` : '';\r\n const formattedDays = days > 0 ? `${days} Day(s)` : '';\r\n if (differenceInDays < 1) {\r\n this.differenceError = true;\r\n }\r\n else{\r\n this.differenceError = false;\r\n }\r\n }\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 window.addEventListener('mousemove', this.drag);\r\n window.addEventListener('mouseup', this.stopDragging);\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 stopDragging = () => {\r\n this.isDragging = false;\r\n window.removeEventListener('mousemove', this.drag);\r\n window.removeEventListener('mouseup', this.stopDragging);\r\n }\r\n save() {\r\n const refreshEvent = new CustomEvent('refreshDataEdit');\r\n event.preventDefault();\r\n this.controllerFactory.validate()\r\n .then(result => {\r\n if (result.valid) {\r\n const empid = this.jwtService.getEmployeeId();\r\n let data = {\r\n EmployeeID: empid,\r\n AgreementName:this.AgreementName,\r\n FromDate: this.FromDate,\r\n ToDate: this.TillDate,\r\n Value: this.Value,\r\n AgreementDate: this.AgreementDate,\r\n DocumentName:this.DocumentNameDisplay,\r\n DocumentPath:this.file,\r\n Reason: this.Reason,\r\n PersonAgreementId:this.PersonAgreementId,\r\n };\r\n const AgreementNameValidatecheck={\r\n EmployeeID: this.empid,\r\n AgreementName: this.AgreementName,\r\n PersonAgreementId:this.PersonAgreementId,\r\n };\r\n if (this.AgreementName==null||this.AgreementName==\"\"||this.AgreementName==undefined) {\r\n this.errorMessage=true;\r\n this.errorMessage = 'The aggrement name field is required.';\r\n setTimeout(()=>{this.errorMessage=null},5000);\r\n const errorMessages = document.querySelectorAll(\".error-messages\");\r\n if (errorMessages.length > 0) {\r\n errorMessages[0].scrollIntoView({ behavior: \"smooth\" });\r\n }\r\n }\r\n else if (this.AgreementName.length>250){\r\n this.errorMessage=true;\r\n this.errorMessage = 'Agreement name should be less than 250 characters.';\r\n setTimeout(()=>{this.errorMessage=null},5000);\r\n const errorMessages = document.querySelectorAll(\".error-messages\");\r\n if (errorMessages.length > 0) {\r\n errorMessages[0].scrollIntoView({ behavior: \"smooth\" });\r\n }\r\n }\r\n else if (this.AgreementName!= null||this.AgreementName!=\"\"||this.AgreementName!=undefined) {\r\n this.profileService.AgreementNameAvoidDuplicate(AgreementNameValidatecheck).then(agreementName => {\r\n if (agreementName === 1) {\r\n this.errorMessage=true;\r\n this.errorMessage = 'Agreement name already exists.';\r\n setTimeout(()=>{this.errorMessage=null},5000);\r\n const errorMessages = document.querySelectorAll(\".error-messages\");\r\n if (errorMessages.length > 0) {\r\n errorMessages[0].scrollIntoView({ behavior: \"smooth\" });\r\n }\r\n }\r\n else {\r\n this.profileService.AgreementSave(data).then(() => {\r\n this.controller.ok(true);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n else{\r\n const errorMessages = document.querySelectorAll(\".error-messages\");\r\n if (errorMessages.length > 0) {\r\n errorMessages[0].scrollIntoView({ behavior: \"smooth\" });\r\n }\r\n }\r\n });\r\n }\r\n}\r\n\r\n","import {inject,customAttribute,bindingMode,bindable } from 'aurelia-framework';\r\nimport { DialogController } from 'aurelia-dialog';\r\nimport { ProfileService } from '../../../../shared/services/profielservice';\r\nimport { JwtService } from '../../../../shared/services/jwtservice';\r\nimport {config} from \"../../../../shared/services/config\";\r\nimport {LoginService} from \"../../../../shared/services/loginservice\";\r\nimport { Router } from 'aurelia-router';\r\n@customAttribute('custom-file-input')\r\n@inject(DialogController,ProfileService,JwtService,Router,LoginService,Element)\r\nexport class ViewAgreementdetails {\r\n viewfile=true;\r\n file;\r\n isDragging = false;\r\n dialog;\r\n static inject = [Element];\r\n constructor(controller, ProfileService, JwtService,router,loginService,element) {\r\n this.controller = controller;\r\n this.profileService = ProfileService;\r\n this.jwtService = JwtService;\r\n this.FromDate=null;\r\n this.TillDate=null;\r\n this.dateDifference = '';\r\n this.empid=this.jwtService.getEmployeeId();\r\n this.AgreementName = '';\r\n this.element = element;\r\n this.router = router;\r\n this.loginService = loginService;\r\n }\r\n activate(data){\r\n this.Agreementdetails = data;\r\n this.AgreementName = data.AgreementName;\r\n this.FromDate=data.FromDate;\r\n this.TillDate=data.ToDate;\r\n this.Value=data.Value;\r\n this.Reason=data.Reason;\r\n this.AgreementDate=data.AgreementDate;\r\n this.DocumentPath=data.DocumentPath;\r\n this.DocumentName=data.DocumentName;\r\n this.DocumentNameDisplay=data.DocumentNameDisplay;\r\n this.PersonAgreementId=data.PersonAgreementId;\r\n this.uploadfile =data.DocumentPath;\r\n if (data.DocumentPath) {\r\n this.file = data.DocumentPath;\r\n this.DocumentName = data.DocumentPath // Set the desired file name\r\n }\r\n }\r\n attached() {\r\n this.specializationInput.focus();\r\n\r\n } cancel() {\r\n this.controller.cancel();\r\n }\r\n openFileDialog() {\r\n document.getElementById('attachments').click();\r\n }\r\n /*downloadFile() {\r\n if (this.file) {\r\n const downloadfile = config.img_url +this.DocumentPath;\r\n //console.log(this.file);\r\n const link = document.createElement('a');\r\n link.href = downloadfile;\r\n link.download = this.DocumentNameDisplay; // 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 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 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","// 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/edit.svg\", import.meta.url);\nvar ___HTML_LOADER_IMPORT_1___ = 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 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/datepicker.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\";\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/datepicker.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\";\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/datepicker.svg\", import.meta.url);\n// Module\nvar ___HTML_LOADER_REPLACEMENT_0___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_0___);\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/password-show.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\";\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/datepicker.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\";\n// Exports\nexport default code;","// Module\nvar code = \"\\r\\n\";\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}